デプロイ可能なjarを1つだけビルドすることがポリシーです。環境固有の構成はすべて個別に保持され、一度にすべて一緒に構築されます。そのため、現在のAntプロセスでは、各環境のプロパティファイルがあり、それらをループして、各環境の構成ファイルのセットを作成します。
現在のPOMXMLでは、コマンドラインで提供されるプロファイルを1つだけ作成できます。 Mavenを介して達成することは可能ですか?
POM.xmlの関連部分の一部を次に示します。
<!-- Define profiles here and make DEV as default profile -->
<profiles>
<!-- dev Profile -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- qa Profile -->
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<!-- prod Profile -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
...
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<filters>
<filter>env/${env}.properties</filter>
</filters>
<outputDirectory>${project.build.directory}/config/${env}
</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/config/default
</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
...。
ありがとう、Prabhjot
Mavenはアリのようではありません。 antを使えば、基本的にやりたいときにやりたいことができます。 Mavenには、明確で文書化された ビルドライフサイクル があり、1つのコンポーネントをビルドする(そしておそらく他のアーティファクトをビルドにアタッチする)ことを目的としています。
ただし、計画しているのは、1つのコンポーネントを複数回ビルドすることですが、パラメーターは異なります。これは、Mavenのライフサイクルには適合しません。したがって、実行する必要があるのは、外部プロセスに反復を実行させ、さまざまなパラメーターを使用してmavenを繰り返し呼び出すことです。
これを実現する古典的な方法は、シェルスクリプトを使用することですが、 Maven Invoker を使用して、JavaまたはMavenコンテキストから別のプロセスを起動することもできます。