Можно ли определить профиль 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 ответ

Вы можете определить свою глобальную сборку для различных профилей в супер-поме и наследовать ее во всех пом

Другие вопросы по тегам