2011-11-24 91 views

回答

6

maven-compiler-plugin負責在test-compile階段編譯您的測試。如果任何測試類無法編譯,則將此插件配置爲使構建失敗。您可以嘗試使用failOnError配置。但我懷疑你會得到你期望的結果。編譯過程在遇到編譯錯誤時立即停止。所以潛在的免費課程可能不會被重新編譯。因此,我們不保證您在test階段執行的.class文件將與相應的.java源文件保持「最新」。

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>default-testCompile</id> 
     <phase>test-compile</phase> 
     <goals> 
      <goal>testCompile</goal> 
     </goals> 
     <configuration> 
      <failOnError>false</failOnError> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
0

-DskipTests通常有效。例如,mvn install -DskipTests

如果您需要嚴格告訴maven忽略 - 請使用-Dmaven.test.skip=true。這將迫使所有的插件和編譯器忽略測試

編輯:看起來像-DskipTests=true也可以!

+0

但是,這將跳過所有的測試,當我需要跳過只有測試編譯錯誤。 –

+0

你在使用JUnit測試嗎? Maven無法選擇測試並忽略它們。如果您知道哪些測試有編譯失敗,請針對該特定測試使用JUnit註釋@Ignore。 – Ozyman

+0

添加@Ignore註釋將無濟於事。 –

3

不推薦...

mvn -DskipTests=true clean compile 

記住,擁有非凡的能力越大,責任越大。

+0

但是,當我需要跳過僅包含編譯錯誤的測試時,它會跳過所有測試。 –

+0

我之前沒有嘗試過......(現在我想知道:) :)我知道在方法頂部的@Ignore,但這需要更改代碼。 –

+0

添加@Ignore註釋將無濟於事。 –

0

使用以下命令跳過整個測試源文件夾。如果您使用以下命令,那麼通過maven不會考慮這些測試類中的編譯錯誤。

mvn clean install -Dmaven.test.skip=true