[英]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.