[英]m2e ignores the testOutputDirectory for test resources
我需要将我的构建输出到目标的不同目录。
使用project.build.directory , 输出和testOutputDirectory属性可以使用mvn clean install
从命令行正常工作,但是当我从eclipse构建时,如果我有一个src/test/resources
目录,它会创建一个空的target/test-classes
目录。
具有相同行为的简单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上有它时,我仍然得到不正确的目标文件夹。
尝试检查Java Build Path的输出文件夹。 m2e插件可能无法更新所有输出路径:
右键单击您的项目 - >构建路径 - >配置构建路径。
在“源”选项卡上展开每个条目,编辑“输出文件夹”并将每个条目切换回项目默认值。
默认情况下,所有maven POM都继承Super POM。 如果你看一下Maven Super POM ,你可以看到testOutputDirectory被定义为project / build下的一个元素。 我不确定你是否打算将它设置为财产。 尝试直接在<build>部分下覆盖<testOutputDirectory>元素
有时m2e不会发现变化。
因此,选择您的项目, 单击鼠标右键 - > Maven - >更新项目 。
如果这没有帮助,请删除.settings文件夹,然后重试。
编辑:
也许它无法翻译构建部分中使用的属性。 尝试硬编码:
<build>
<directory>differentTarget</directory>
<outputDirectory>differentTarget/classes</outputDirectory>
<testOutputDirectory>differentTarget/different-test-classes</testOutputDirectory>
</build>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.