私は現在、https ://maven.apache.org/plugins/maven-war-plugin/とhttp://tomcat.apache.org/maven-plugin-2.0/でhttp://mojo.codehausで maven3 を使用しています。 .org/build-helper-maven-plugin/の横に追加のソースを追加するにsrc/main/java
はsrc/mock/java
これらの追加クラスを実行mvn tomcat7:run
すると、テスト リソースも存在します。(経由で) WAR をバンドルする場合mvn package
、これらの偽のリソースは除外されます。ほとんどの場合、それで問題ありません。なぜなら、war バンドルは私たちが出荷するものであり、製品サーバーにデプロイされているからです。
問題 1:しかし: 「偽の」クラスは、生産的な WAR にとってクリーンではない WAR ビルドでまだ権利を与えられています。
しかし、別のユースケースがあります: これらの追加のクラスとリソースを使用して WAR ファイルを構築し、継続的インテグレーション/デプロイ (jenkins) を介してローカル開発サーバーにデプロイするのは難しいようです...
問題 2:現在の WAR には偽のクラスがありますが、偽のリソースはありません;/
質問: 通常のビルドでは偽のクラスを除外する方法ですが、WAR ビルドではこれらのソースと偽のリソースを含める方法を教えてください。
これが私がすることです:
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
<testResource>
<directory>src/mock/resources</directory>
</testResource>
</testResources>
…
… // plugins section
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources-after-test</id>
<phase>prepare-package</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/main/java-fake</source>
<source>${project.basedir}/src/mock/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
</configuration>
</plugin>
この質問は次のものに関連しています。