Есть несколько приложений, которые необходимо собрать и собрать из нескольких модулей.
В родительском pom я использую профиль для вызова сборок для разных приложений.
root
parent/
pom.xml
moduleA/
pom.xml
moduleB/
pom.xml
moduleC/
pom.xml
Например, приложению «profile-1» потребуется подмножество существующих модулей, которые нужно собрать и собрать вместе в виде tar-шарика. Tar будет содержать несколько jar-файлов и различных файлов конфигурации, извлеченных из целевого / подмодулей.
Я использую сценарий оболочки, вызываемый с помощью exec-maven-plugin, чтобы собрать tar.
Проблема, с которой я столкнулся, заключается в том, что в одном приложении мне нужно создавать один и тот же модуль несколько раз, но с разными параметрами maven.
Как лучше всего это сделать?
<profiles>
<profile>
<id>profile-1</id>
<modules>
<module>../moduleA</module>
<module>../moduleB</module>
<!-- <module>../moduleC</module> -->
</modules>
<properties>
<global.version>0.0.1-SNAPSHOT</global.version>
</properties>
<build>
<!-- use maven exec plugin to run a shell script which generates the tar ball picking jars and config files from different modules target dirs -->
<plugins>
</plugins>
</build>
<profile>
</profiles>
Образец подмодуля pom
<groupId>com.test</groupId>
<artifactId>moduleC</artifactId>
<packaging>bundle</packaging>
<version>${global.version}</version>
<name>test :: ${project.artifactId} :: ${name} </name>
<parent>
<groupId>com.test</groupId>
<artifactId>parent</artifactId>
<version>${global.version}</version>
<relativePath>../parent</relativePath>
</parent>
Что я пробовал:
1) Могу ли я разделить на несколько профилей и вызывать их как -Pprofile-1, profile-2?
Это не сработало для меня, но я бы делал что-то не так.
2) Имейте другой сценарий оболочки, который имеет командную строку mvn для создания модуля C различными способами.
- Несмотря на то, что я передаю "-Dglobal_version", модуль C, запускаемый из командной строки mvn, похоже, не находит родителя в репозиторий.
Я попытался выполнить сборку "-N", чтобы поместить родительский pom в репозиторий перед сборкой приложения, но это не помогло.
maven-assembly-plugin. Почему у вас так много профилей? Это тоже запах в вашей сборке. - person Tunaki   schedule 09.02.2016