我遇到了有關構建腳本的問題。目前我有一個主build.xml文件,它調用目錄中的每個內部build.xml文件。內部build.xml有兩個階段來執行,最後我得到一個jar文件。 我的要求是,如果在內部build.xml文件的第一步中出現任何問題,我不應該得到jar文件,但是主構建應繼續執行並轉到下一個內部build.xml文件。 在基於某些條件的內部build.xml中,我想停止內部構建。應該在代碼中進行哪些更改以停止特定構建? 在此先感謝。僅停止構建腳本的一部分
回答
如果您可以負擔將ant-contrib添加到您的版本,那麼很容易。在你的主要任務中,請執行以下操作:
<target name="xxx">
<var name="firstStepOK" value="true"/>
<trycatch>
<try>
<!-- call first sub build -->
</try>
<catch>
<var name="firstStepOK" value="false"/>
</catch>
</trycatch>
<!-- call second sub build, pass value of firstStepOK -->
</target>
不幸的是,ant-contrib從來沒有將它變成適當的東西,這太可惜了。它包含非常有用的任務。
螞蟻是有點愚蠢 - 在後見之明xml是一個螞蟻的糟糕的決定。 Ant並不是一種腳本語言,而是一系列聲明,任務繁重(用java編寫)。 Ant-contrib並沒有解決螞蟻的愚蠢,而是讓它們變得更糟。 ant-contrib通常會導致構建可維護性差的文件。讓螞蟻成爲螞蟻,不要試圖讓它成爲一種腳本語言 - 它總是會吸引人(可以說它也是一種構建定義語言) – thekbb
@thekbb我不同意。 ant-contrib是向ant本身注入某種感覺的唯一方式(例如'var' - 我總是無法理解使屬性不變的原因)。我不明白,-1。我的解決方案Just Works(tm)。無論如何,從那以後,我改用了gradle。 – fge
我們的態度比我們的意見分歧更大。這很難,因爲我認爲我們都想說「不要使用螞蟻」,但這對OP沒有幫助。我的答案應該是更像這個舊的「:http://stackoverflow.com/a/6301879/505191(鏈接是體面的)。我低估了,因爲我真的相信這不是一個好主意,並且想表明這一點(OP),更重要的是許多人會發現這個問題(我將來可能最終會與誰合作)。我的意思是沒有個人冒險行爲。我非常喜歡這個網站,並且相信當我們投票更多時(特別是低估投票) – thekbb
將設置爲failonerror="false"
用於調用其他構建文件。
編輯點評:我不建議這樣做......你想知道什麼時候構建失敗,這種破壞會消除你所有的可見性,如果你想在失敗時構建一些項目 - 將它們分成多個構建版本(或者不要從通用構建文件中調用它們)。 – thekbb
- 1. 運行一個python腳本作爲cmake構建的一部分
- 2. 停止一個jQuery腳本
- 3. Auto_increment停止創建表的腳本
- 4. H5BP構建腳本部署
- 5. Python BaseHTTPServer停止腳本的其餘部分
- 6. 我的自定義init shell腳本停止部署腳本
- 7. 腳本剛停止
- 8. PHP腳本停止
- 9. PHP腳本停止
- 10. 腳本像三分鐘後停止
- 11. 從構建腳本中停止IIS 7應用程序池
- 12. 當主腳本停止時,異步PHP腳本停止
- 13. Ajax腳本本身停止
- 14. 構建停止的錯誤
- 15. 停止Tkinter的Python腳本
- 16. Maxscript中的停止腳本
- 17. spring-boot:僅構建測試環境的一部分
- 18. 使用外部構建腳本的maven
- 19. SoundPool僅停止一次
- 20. TFS構建(2013) - 構建停止處理
- 21. 如何停止僅用於IE瀏覽器的腳本8
- 22. 運行帶有循環的shell腳本時,操作僅停止
- 23. CMD有一個按鍵停止腳本
- 24. Async Adsense腳本 - MVC .Net部分視圖 - 僅包含腳本一次
- 25. 作爲bash腳本的一部分調用gradle終止該腳本
- 26. PowerISE停止警告腳本
- 27. PHP停止運行腳本
- 28. phpagi腳本隨機停止
- 29. 停止執行Groovy腳本
- 30. IE停止腳本警告
您正在使用哪種構建系統?這聽起來像是Ant,但這是一些非常重要的信息。 –