ビルドを別のディレクトリに出力してターゲットにする必要があります。
project.build.directory、outputおよびtestOutputDirectoryプロパティを使用すると、を使用してコマンド ラインから正しく動作しますmvn clean install
が、Eclipse からビルドすると、ディレクトリがある場合は空のtarget/test-classes
ディレクトリが作成されますsrc/test/resources
。
同じ動作をする単純な pom ファイルは次のようになります。
<project>
<groupId>com.example</groupId>
<version>1.0.0</version>
<modelVersion>4.0.0</modelVersion>
<artifactId>reproduce</artifactId>
<packaging>war</packaging>
<properties>
<project.build.directory>differentTarget</project.build.directory>
<project.build.outputDirectory>${project.build.directory}/classes</project.build.outputDirectory>
<project.build.testOutputDirectory>${project.build.directory}/different-test-classes</project.build.testOutputDirectory>
</properties>
<build>
<directory>${project.build.directory}</directory>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<testOutputDirectory>${project.build.testOutputDirectory}</testOutputDirectory>
</build>
</project>
私のディレクトリ構造は次のようになります。
|-src
|---main
|-----webapp
|-------WEB-INF
|---test
|-----resources
<web-app />
動作を再現できる最も簡単な方法は、内部にある web.xml を除いて、すべてのディレクトリを空にすることです。
実際のテスト クラスがあると、target/test-classes
ディレクトリ内にフォルダーが作成されますが、実際のクラス ファイルはdifferentTarget/test-classes
.
DebianでEclipse Indigo、m2e 1.2.0、およびMaven Integration for WTP 0.15.3を使用しています
編集
を削除しproperties
て出力をハードコードすると、次のようになります。
<build>
<directory>differentTarget</directory>
<outputDirectory>differentTarget/classes</outputDirectory>
<testOutputDirectory>differentTarget/different-test-classes</testOutputDirectory>
</build>
次に、 Maven > Update Project...に移動すると正しい動作が得られますが、 Project > Cleanに移動するか、さらに重要なことにBuild Automaticallyに移動すると、ターゲットフォルダーが正しくありません。