Я новичок в Maven, мы превращаем проект, основанный на муравьях, в проект Maven. Все прекрасно работает. Кроме того, нам необходимо скомпилировать исходный код.
Чтобы быть более понятным, у нас есть три пакета в папке src/main/java, а именно dao, svc и controller. Я хочу сначала скомпилировать dao, а затем скомпилировать svc, предоставив ссылку dao на него, аналогично скомпилируйте контроллер, указав только ссылку svc, но не dao.
Наконец, цель состоит в том, чтобы убедиться, что контроллеры не используют ни один из классов dao, они могут использовать только классы svc. Если это условие терпит неудачу, сборка Maven должна быть неудачной.
Пожалуйста, предложите.
Похоже, вам нужен мультимодульный проект 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/...
<dependency>
которая указывает на ваш артефакт DAO. Похоже, вам нужно немного поработать над фоном в Maven - это не супер сложно, но вы не доберетесь далеко без основ в основах.
Чтобы быть более понятным, у нас есть три пакета в папке src/main/java, а именно dao, svc и controller. Я хочу сначала скомпилировать dao, а затем скомпилировать svc, предоставив ссылку dao на него, аналогично скомпилируйте контроллер, указав только ссылку svc, но не dao.
Судя по вашим требованиям, я думаю, что более или менее вам нужно настроить проект Multi Module на основе maven. Взгляните на эти ссылки