簡體   English   中英

m2e忽略測試資源的testOutputDirectory

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM