Я использую Maven нескольких модулей построить, как показано нижеПропустить сбор maven для немодифицированных модулей?
<modules>
<module>module1</module>
<module>module2</module>// dependant on module 1
<module>module3</module>// dependant on module 2
<module>warApplication</module>// its a war file dependant on above modules
</modules>
Present поведение сборки: - Если я внести изменения только в модуле 1, специалист будет строить даже module2, Module3 исходные файлы, а затем положить Module1, module2, Файлы jar файла module3 под warApplication/target/lib.
Есть ли конфигурация/способ, когда я запускаю сборку, maven проверяет, был ли какой-либо файл модифицирован в модуле, если не пропустить этот модуль. Для файла войны он добавит конкретный файл библиотеки , который был изменен. Это сэкономит много времени.
Чтобы проверить, не модифицирован ли файл в модуле или нет, maven может хранить последнее время сборки. Перед началом сборки он проверяет, был ли изменен какой-либо файл после последней метки времени сборки, если да, постройте его, иначе пропустите его.
Есть ли какой-либо плагин maven для этого?
Обновление: -
Моя структура проекта
TopFolder
.mvn directory -> extensions.xml
build directory->build-Projects-> pom.xml
build directory-> parent -> pom.xml
modules - > module1 -> pom.xml
modules - > module2 -> pom.xml
modules - > module3 -> pom.xml
Вот я в том числе модули в родительском ПОМ
<modules>
<module>../../modules/module1</module>
<module>../../modules/module2</module>
</modules>
. Я включил Scm тег <developerConnection>scm:svn:https://comp.com/svn/trunk</developerConnection>
в обоих ниже проекты
build directory->build-Projects-> pom.xml
build directory-> parent -> pom.xml
Запуск сборки из build directory->build-Projects-> pom.xml
. Но проблема в том, когда я меняю любой файл на любой модуль и запускаю сборку с build directory-> pom.xml
, его модуль не обнаруживает изменения?
Я знаю, это не ответ, но попробуйте град. По крайней мере, он пропустит восстановление для нетронутых модулей. – glebiuskv
Вы должны учитывать, что, даже если вы не коснулись модуля 2, результат сборки может отличаться. Прежде всего, сборка модуля 2 может сломаться, потому что вы изменили какой-то класс в модуле 1, который вызывается модулем 2. По той же причине тесты модуля 2 могут проходить или ломаться в зависимости от модуля 1. Кроме того, возникают более редкие проблемы например, используя общедоступные константы модуля 1 в модуле 2. Они скомпилированы в модуль 2, чтобы байт-код модуля 2 мог измениться, даже если вы только изменяете константу в модуле 1. –
@JFMeier вы правы. В этом случае мне нужно модуль сборки 2 также. Но лат говорит, что я уверен, что ничего подобного не изменилось, что может сломать модуль 2, есть ли способ пропустить сборку для модуля 2 – user3198603