1

私のビルド プロセスは非常に複雑で、Windows で実行する場合と Linux で実行する場合にいくつかのアクションを実行する必要があり、それらのアクションをさまざまな POM に配置する必要があります。

OSに応じて特定のプロファイルを有効にできることを知っています。しかし、私が見つけたすべての例には、<profiles> ... </profiles>タグ内でアクションを実行することが含まれており、それらのプロファイルのアクティブ化基準も含まれています。私が避けようとしているのは、次のような多くのセクションを宣言する必要があることです:

ポム 1:

</profiles>
<profile>
  <activation>
    <os>
      <family>Windows</family>
      <arch>x86</arch>
    </os>
  </activation>
  <build>
     ...
  </build> 
</profile>
...
</profiles>

次に、別のPOMのウィンドウで何かをする必要がある場合も同じです。何度も何度も...一部のプロファイルでは、アクティベーションがより広範囲になります。

アクティベーション ポリシーを 1 か所で定義してから、次のようにします。

<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でアクティベーションポリシーを使用してタグをもう一度宣言する必要がありますか、またはこの重複をすべて回避する方法はありますか?

ネット上で基本的な例以外のものを見つけるのがいかに難しいか、少し混乱して驚いています。

4

1 に答える 1