Пакетная компиляция с Maven?

1

Я новичок в Maven, мы превращаем проект, основанный на муравьях, в проект Maven. Все прекрасно работает. Кроме того, нам необходимо скомпилировать исходный код.

Чтобы быть более понятным, у нас есть три пакета в папке src/main/java, а именно dao, svc и controller. Я хочу сначала скомпилировать dao, а затем скомпилировать svc, предоставив ссылку dao на него, аналогично скомпилируйте контроллер, указав только ссылку svc, но не dao.

Наконец, цель состоит в том, чтобы убедиться, что контроллеры не используют ни один из классов dao, они могут использовать только классы svc. Если это условие терпит неудачу, сборка Maven должна быть неудачной.

Пожалуйста, предложите.

  • 0
    Разделите dao / svc / controller на несколько проектов maven и установите соответствующие зависимости.
  • 0
    Самый простой способ добиться этого - разделить проект на три части (и не заставить контроллер импортировать дао).
Теги:
maven
maven-3

2 ответа

3
Лучший ответ

Похоже, вам нужен мультимодульный проект maven. Создайте родительский проект, задача которого состоит в том, чтобы объединить ваши три модуля и предоставить одну вещь для сборки. Создайте один модуль для каждого из ваших пакетов, затем определите зависимости между этими модулями в отдельных файлах POM.

Система сборки Maven достаточно умна, чтобы знать, в каком порядке создавать модули на основе зависимостей, которые вы заявляете между ними. В случаях, когда вы не определяете зависимость (например, между контроллером и дао), модуль контроллера не может обращаться к классам в модуле dao.

Окончательный исходный макет будет выглядеть примерно так:

your-project
your-project/pom.xml   <--- parent POM

your-project/dao
your-project/dao/pom.xml
your-project/dao/src/main/...

your-project/svc
your-project/svc/pom.xml
your-project/svc/src/main/...

your-project/controller
your-project/controller/pom.xml
your-project/controller/src/main/...
  • 0
    Благодарю. Я думаю, что это может сработать. Но может оказаться невозможным разделить существующий проект (уже работающий) на модули. Если возможно, не могли бы вы рассказать об этом подробнее? Как предоставить ссылку на Дао в SVC?
  • 0
    @sree Чтобы предоставить ссылку, вы включаете в свой SVC pom запись <dependency> которая указывает на ваш артефакт DAO. Похоже, вам нужно немного поработать над фоном в Maven - это не супер сложно, но вы не доберетесь далеко без основ в основах.
Показать ещё 4 комментария
0

Чтобы быть более понятным, у нас есть три пакета в папке src/main/java, а именно dao, svc и controller. Я хочу сначала скомпилировать dao, а затем скомпилировать svc, предоставив ссылку dao на него, аналогично скомпилируйте контроллер, указав только ссылку svc, но не dao.

Судя по вашим требованиям, я думаю, что более или менее вам нужно настроить проект Multi Module на основе maven. Взгляните на эти ссылки

  1. Ссылка 1
  2. Ссылка 2
  • 0
    Благодарю. Возможно, сейчас я не смогу разделить проект.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню