如何在不觸發測試的情況下運行maven-release-plugin?如何獲得maven-release-plugin跳過我的測試?
我已經試過
-Dmaven.test.skip=true
和
-DskipTests
和
-DpreparationGoals=clean
...但沒有工作。
是的,我知道如果測試未通過,我不應該發佈,但我無法控制讓我的同事編寫可靠的測試。
如何在不觸發測試的情況下運行maven-release-plugin?如何獲得maven-release-plugin跳過我的測試?
我已經試過
-Dmaven.test.skip=true
和
-DskipTests
和
-DpreparationGoals=clean
...但沒有工作。
是的,我知道如果測試未通過,我不應該發佈,但我無法控制讓我的同事編寫可靠的測試。
-Darguments="-DskipTests"
是你想要的,或者明確配置pom中的分叉執行。
如果你只是想跳過集成測試,這將做到這一點:
-Darguments="-DskipITs"
-Darguments="..."
參數傳遞給叉形Maven的過程,但要認識到,這裏有正在使用兩個不同的交換機是非常重要的。 -DskipTests
強制maven不運行任何測試,但測試仍然被編譯(如果您對測試jar類型有任何依賴關係,這一點很重要)。 -Dmaven.test.skip=true
強制maven甚至不編譯測試,這意味着任何測試罐都不會生成。
所以,你必須使用-Darguments
,但跳過測試運行只使用skipTests
,以阻止他們編譯使用maven.test.skip
。
跳過整個單元測試,它使用參數
-Dmaven.test.skip =真
,所以如果你想跳過單元測試,這將解決
mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true
或者你也可以在maven-surefire-plugin中定義skipTests在
的pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
這個問題是關於Maven發佈插件的,因此這些不是將要使用的Maven目標。 – Jaap 2016-12-19 15:37:57
沒有的Maven插件字面上觸發測試編譯或執行。正是這些maven生命週期階段觸發了一個或多個插件的執行,當這些插件將目標限定在特定階段時。
所以,只要執行單個插件的目標就足夠了,而不執行測試:
mvn release:perform
或項目構建和包裝相結合:
mvn clean package release:perform
它爲我,感謝和+1但是...... Wny是必要的嗎? – javamonkey79 2012-10-10 17:13:40
IT是必要的,因爲發佈過程會分叉一個新的maven進程,並且tpical -DskipTests不會作爲系統屬性傳遞。 – Eddie 2012-12-03 19:18:19
希望我可以投你'2'。我花了幾個小時試圖讓這個權利......但是1.我錯過了文檔中的某些東西,或者是mvn文檔丟失了什麼? 2.我在我的公司POM中配置了\t \t' true '。仍然沒有工作。什麼工作是你的解決方案。 –
2012-12-11 12:24:29