<profiles>
<profile>
<id>dev</id>
<properties>
<profileVersion>DEV</profileVersion>
<webXmlFolder>${id}</webXmlFolder>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profileVersion>1.0.0-RC1</profileVersion>
<webXmlFolder>${id}</webXmlFolder>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileVersion>1.0.0-Final</profileVersion>
<webXmlFolder>${id}</webXmlFolder>
</properties>
</profile>
</profiles>
の下に指定された3種類のプロファイル、とMavenのアプリを持っていると私はこのようにMavenの構造を持っている:
のsrc /メイン/設定/デフォルト/ WEB-INF/web.xmlの
SRC /メイン/設定は/ dev/WEB-INF/web.xmlの
SRC /メイン/設定/試験/ WEB-INF/web.xmlの
のsrc /メイン/設定/ PROD/WEB-INF/web.xmlの
のsrc /メイン/ webappの/ WEB-INF/
私の仕事は、Webアプリケーション/ WEB-へのweb.xmlを任命設定することです構築中のINFは、指定されたプロファイルに依存します。プロファイルが指定されていない場合、web.xmlはデフォルトのフォルダからコピーします。
私はプラグインを持っていますが、動作しません。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-prod-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${project.build.outputDirectory}/classes/WEB-INF</outputDirectory>
<resources>
<resource>
<directory>src/main/config/${webXmlfolder}/WEB-INF</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
私はその問題に多くの時間を費やしており、今は少し混乱しています。
定義済みのプロファイルはすべて、$ {id}プロパティに依存します。これはPOMの残りの部分で定義されていますか? –
私の間違いは、$ {id}のプレースホルダーの値がプロファイルID名の代わりに[groupId:artifactId:version]のように定義されたアプリケーションのフルネームであるということでした。 :) –