Вы можете использовать build-helper-maven-plugin
в файле родительского pom.xml
, чтобы создать новое свойство на основе packaging
(во время выполнения он изменял от pom
для родителей, чтобы jar
и war
для модулей). Это новое свойство можно было бы использовать для динамического прогона maven-install-plugin
.
Простой пример:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>build-helper-regex-is-packaging-war</id>
<phase>validate</phase>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>only.when.war.is.used</name>
<value>${project.packaging}</value>
<regex>war</regex>
<replacement>true</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>${only.when.war.is.used}</skip>
</configuration>
</plugin>
Это динамическое ${only.when.war.is.used}
свойство будет установлен true
только тогда, когда project.packaging
будет иметь значение war
и, таким образом эффективно пропускать maven-install-plugin
казни через его skip
вариант.
Вы могли бы переместить это поведение в профиль и имеют различные настройки для jar
и war
, держа их в общем месте: корень pom.xml
, благодаря их динамическому поведению.
Что касается способности обнаруживать уже установлен ли артефакт или нет, не существует такого варианта по документации official плагина, и я не думаю, что вы могли бы иметь такое поведение, просто с помощью плагина ,
Однако вы можете использовать механизм активации maven profile в случае отсутствия файла (установленного файла) и соответственно активировать профиль.
Вы могли бы иметь в динамике (основываясь только на стандартных свойств) следующий подход:
<profiles>
<profile>
<activation>
<file>
<missing>${settings.localRepository}/${project.groupId}/${project.artifactId}/${project.build.fileName}.${project.packaging}</missing>
</file>
</activation>
...
</profile>
</profiles>
Вы когда-нибудь считается 'МВН --projects Модуль --also-макияж dependent'? – khmarbaise