В многомодульном проекте m2e разделение пути к классу импортируемых проектов
Допустим, у меня есть.
top/
|-parent/pom.xml
|-module1/pom.xml
|-module2/pom.xml ->depends on module1-SNAPSHOT.jar
Одной из приятных особенностей m2e является то, что все это, если я импортирую два многомодульных модуля в eclipse, и если один из них зависит от другого, тогда их каталог выходных / классов сборки будет связан. Мне не нужно делать maven-установку на module1, но последние изменения на module1 подхватываются module2.
Хотя это хорошая функция для небольших проектов или меньшего количества модулей. Но становится больно, когда обновление одного проекта начинает каскадную сборку на всех других проектах. Кроме того, добавление дополнительных модулей в eclipse не приведет к полной сборке рабочей области при каждом добавлении или удалении проектов из рабочей области.
Итак, вот вопрос: возможно ли для m2e напрямую ссылаться на файлы JAR SNAPSHOT из репозитория.m2? И если я хочу, чтобы последний из module1 был сделан доступным для module2. Мне нужно будет установить модуль module1, который создаст файл SNAPSHOT.jar в репозитории.m2.
Примечание: я использую eclipse luna + j2ee.Version: Luna Service Release 2 (4.4.2), идентификатор сборки: 20150219-0600. Поэтому я использую Maven m2e-wtp, который поставляется по умолчанию с ним.
1 ответ
Вам нужно в основном отключить разрешение рабочей области в проекте, для которого вы хотите использовать ссылки jar-снимков. Поэтому щелкните правой кнопкой мыши, скажем, ваш веб-проект, а затем выполните
Maven> Отключить разрешение рабочей области
Отныне веб-проект больше не будет ссылаться на свои зависимости проекта рабочей области, но будет ссылаться на jar-файлы, которые были установлены в вашем локальном репозитории Maven. Имейте в виду, что это все или ничего: вы не можете иметь некоторые проекты, на которые все еще ссылается ваш веб-проект, в то время как другие ссылаются на их снимок jar. И это заставляет вас запускать mvn install в зависимости от вашего проекта каждый раз, когда вы вносите изменения.
Другой вариант - закрыть проекты, которые вы не планируете изменять слишком часто. После закрытия m2e будет использовать ссылку из местного репозитория Maven.