我有一個問題,我有一個build.properties我有一個屬性test = true; 和螞蟻目標應該只在情況下被調用是測試是真實的。我希望將該值作爲默認值。有沒有可能改變詹金斯的價值?我試圖設置test = false,但似乎沒有效果。一些建議?螞蟻屬性覆蓋
螞蟻屬性覆蓋
回答
在這種情況下,您必須像下面一樣修改Ant腳本,然後它將按照您的預期工作。 如果不嘗試類似的邏輯來爲螞蟻設置默認值和動態值。然後,如果你從詹金斯傳遞價值,如果它是-Dtest =真,否則默認情況下它會值分配給假
<condition property="test" value="${test}" else="false">
<isset property="${test}" />
</condition>
爲了有一個Ant目標只在一定條件下
執行在Ant構建腳本,你需要一個只有在滿足某個條件時才執行的目標。使用<target>
標籤的if="property"
屬性很容易做到,但是如果屬性是設置爲,則不檢查它的值。並且您已將該屬性設置爲默認test=true
。所以對於你的情況,可以使用一些不同的方法。
<condition property="test.execute" value="${test}">
<matches pattern="true" string="${test}"/>
</condition>
<target name="runtest" if="test.execute">
<echo message="running tests"/>
</target>
此腳本檢查的${test}
的價值,如果以文本"true"
相匹配,它會的${test.execute}
的值設置爲${test}
價值。如果不是(即非「真」),則屬性${test.execute}
仍然爲未設置。
最後,只有在屬性${test.execute}
被設置時纔會執行目標runtest
。
注意:這隻會在該屬性保持未設置時才起作用。即使在構建文件或屬性中有<property name="test.execute" value=""/>
也會破壞它。
要通過詹金斯傳遞變量到Ant:
- 選擇調用Ant構建步驟
- 點擊高級...
- 在目標,輸入常用的指標(或者默認爲空)
- 根據構建文件,指定構建文件(或在
$WORKSPACE
根留空爲默認build.xml
) - 在屬性,格式爲
param=value
參數輸入。這與在命令行上使用-Dparam=value
相同。請注意,在Jenkins中指定此字段中的屬性時,您需要而不是需要-D
。 - 所以,進入
test=false
非常感謝,它幾乎奏效。這是一個恥辱,我不能選擇2個答案是正確的!但它幫助了很多。 – bearbearbear
你能詳細說明哪些部分不起作用嗎? – Slav
使用Ant 1.9.2及以上(假設它使用Ant 1.9工作。1,但是我有它的問題),你現在可以使用在大多數任務if:true參數:
<project default="test" xmlns:if="ant:if"> <!-- Note xmlns in the entity "project" -->
<property name="run.this" value="true"/>
<target name="test">
<echo if:true="${run.this}">Run test target</echo>
</target>
</project>
如果我運行:
$ ant
Buildfile: /Users/david/build.xml
test:
[echo] Run test target
BUILD SUCCESSFUL
Total time: 0 seconds
如果我運行:
ant -Drun.this=false # Sets property run.this to "false"
test:
BUILD SUCCESSFUL
Total time: 0 seconds
請注意,當run.this
爲假時,if:true="${run.this}
可防止執行回顯。
- 1. Maven的不及格被覆蓋的屬性,以螞蟻
- 2. 螞蟻:螞蟻如何找到屬性setter方法屬性
- 3. Jacoco與螞蟻沒有顯示覆蓋
- 4. 螞蟻覆蓋我的manifest.mf文件
- 5. 螞蟻Macrodef屬性利用
- 6. 螞蟻構建失敗 - 因爲螞蟻忘記屬性?
- 7. 是否有可能用螞蟻覆蓋xml文件中的屬性?
- 8. 螞蟻屬性內部的問號
- 9. 螞蟻除非屬性不工作?
- 10. junit系統屬性與螞蟻
- 11. 螞蟻屬性的列表項索引
- 12. 螞蟻中的動態屬性名稱
- 13. 螞蟻var和屬性範圍
- 14. 覆蓋屬性
- 15. 覆蓋屬性
- 16. 覆蓋屬性
- 17. 屬性覆蓋
- 18. 覆蓋屬性
- 19. 覆蓋屬性
- 20. 覆蓋屬性屬性
- 21. 聲納螞蟻任務或哈德森綜合覆蓋報告
- 22. 的Android - 生成覆蓋率艾瑪(不螞蟻)
- 23. 沒有運行時使用的覆蓋艾瑪,JUnit和螞蟻
- 24. 螞蟻壓縮和覆蓋JS/CSS文件
- 25. 螞蟻屬性文件中的條件屬性
- 26. 螞蟻寫屬性文件存儲過濾的屬性
- 27. 螞蟻變音屬性內的變音屬性
- 28. 可變屬性的螞蟻不可變屬性
- 29. 螞蟻的屬性值和屬性位置有什麼區別
- 30. FactoryBoy覆蓋屬性
您是否嘗試過簡單地將'test = true'放入Jenkins作業中「invoke Ant」構建步驟的屬性部分?在那裏設置的屬性的處理方式與通過命令行傳遞給Ant的屬性相同,因此應覆蓋構建腳本或屬性文件中設置的任何內容。 – CAustin