Можно ли определить профиль Maven 3 (и его политику активации) в одном месте и использовать его позже?
Мой процесс сборки очень сложен, и мне нужно выполнить несколько действий при работе в Windows и несколько в Linux, и эти действия должны быть размещены во многих различных POM.
Я знаю, что могу активировать определенный профиль в соответствии с ОС. Но все примеры, которые я нахожу, включают действия внутри <profiles> ... </profiles>
теги, которые также включают критерии активации для этих профилей. Чего я пытаюсь избежать, так это объявляя множество разделов следующим образом:
ПОМ 1:
</profiles>
<profile>
<activation>
<os>
<family>Windows</family>
<arch>x86</arch>
</os>
</activation>
<build>
...
</build>
</profile>
...
</profiles>
Затем то же самое, когда мне нужно сделать что-то для окон в другом POM, много раз повсюду... Для некоторых профилей активация более обширна.
Я хотел определить политику активации в одном месте, а затем сделать что-то вроде:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<!-- if profile A is active -->
<source>1.6</source>
<target>1.6</target>
<!-- if profile B is active -->
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
Просто настройте плагин по-разному в соответствии с активным профилем, без необходимости дублировать объявление плагина и все для каждого профиля в тонне файлов POM...
Кроме того, как я могу настроить вещи в нескольких местах, если профиль A активен? Должен ли я снова объявить тег в каждом POM со своей политикой активации или есть способ избежать всего этого дублирования?
Любая помощь приветствуется, я немного смущен и удивлен, насколько сложно найти что-то кроме простых примеров в сети.
1 ответ
Вы можете определить свою глобальную сборку для различных профилей в супер-поме и наследовать ее во всех пом