我需要将我的构建输出到另一个目标目录。
使用project.build.directory,output和testOutputDirectory属性可以从命令行正常工作,但是当我从 eclipse 构建时,如果我有一个目录mvn clean install
,它会创建一个空目录。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时我仍然得到不正确的目标文件夹。