Хорошо, я думал, я понял, как использовать Maven ...Как я могу заставить один модуль Maven зависеть от другого?
У меня есть мастер-проект M
который имеет подпроекты A
, B
и C
. C
содержит некоторые общие функции (главным образом интерфейсы), которые необходимы A
и B
. Я могу запустить mvn compile jar:jar
из корневого каталога проекта (каталог M
) и получить файлы JAR A.jar
, B.jar
и C.jar
. (Версии для всех этих артефактов в настоящее время 2.0-SNAPSHOT
.)
Мастер pom.xml
файл в M
списках каталогов C
под его <dependencyManagement>
тега, так что A
и B
могут ссылаться C
, просто включая ссылку, например, так:
<dependency>
<groupId>my.project</groupId>
<artifactId>C</artifactId>
</dependency>
Пока что так хорошо. Я могу запустить mvn compile
из командной строки, и все работает нормально. Но когда я открываю проект в NetBeans, он жалуется на проблему: «Некоторые артефакты зависимостей не находятся в локальном репозитории», и он говорит, что недостающий артефакт - C
. Аналогично, из командной строки, если я перехожу в директории или B
и попробую запустить mvn compile
, я получаю сообщение «Ошибка сборки: не удалось разрешить артефакт».
Я ожидаю, что я мог бы вручную пойти туда, где мой C.jar
был построен и запустить mvn install:install-file
, но я предпочел бы найти решение, которое позволяет мне просто работать непосредственно в среде NetBeans (и/или в Eclipse, используя m2eclipse).
Что я делаю неправильно?
Спасибо. Я как-то знал об использовании 'mvn package' вместо' mvn compile', но спасибо за напоминание. Однако ссылка «Maven Best Practices» на wiki.netbeans.org была особенно полезна, поэтому я отмечаю этот ответ как принятый. –
@ Даниэль. Добро пожаловать. Но сторона примечания была больше о 'mvn package' vs' mvn jar: jar' :) Рад, что вы нашли ссылку полезной, хотя. –
Возможно ли запустить модуль 'install' как часть' compile' родителя? –