我有一個ant腳本來管理構建過程。對於WiX我需要在生成新版本的安裝程序時生成一個新的guid。任何人有任何想法如何在ANT做到這一點?任何使用內置任務的答案都是可取的。但如果我必須添加另一個文件,那很好。有什麼辦法可以在ANT中生成GUID?
14
A
回答
24
我會使用一個scriptdef
task定義簡單的JavaScript任務封裝了Java的UUID類,像這樣:
<scriptdef name="generateguid" language="javascript">
<attribute name="property" />
<![CDATA[
importClass(java.util.UUID);
project.setProperty(attributes.get("property"), UUID.randomUUID());
]]>
</scriptdef>
<generateguid property="guid1" />
<echo message="${guid1}" />
結果:
[echo] 42dada5a-3c5d-4ace-9315-3df416b31084
如果你有一個合理的先進-date Ant安裝,這應該開箱即用。
2
如果您正在使用(或想使用)groovy,這將很好地工作。
<project default="main" basedir=".">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"
classpath="lib/groovy-all-2.1.5.jar" />
<target name="main">
<groovy>
//generate uuid and place it in ants properties map
def myguid1 = UUID.randomUUID()
properties['guid1'] = myguid1
println "uuid " + properties['guid1']
</groovy>
<!--use the uuid from ant -->
<echo message="uuid ${guid1}" />
</target>
</project>
輸出
Buildfile: C:\dev\anttest\build.xml
main:
[groovy] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
[echo] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
BUILD SUCCESSFUL
使用Groovy 2.1.5和1.8螞蟻
+0
如果您將groovy-all-x.x.x.jar複製到ant lib目錄中,則可以刪除groovy taskdef上的類路徑。用groovy-all-2.4.6.jar和ant 1.9.4進行測試 –
相關問題
- 1. 有沒有什麼辦法可以自動生成har文件?
- 2. 有沒有什麼辦法可以從Visual Studio生成nmake?
- 3. 有什麼辦法可以生成級聯刪除語句嗎?
- 4. 有沒有什麼辦法可以生成一個與UUID(GUID)不同的唯一編號?
- 5. 有什麼辦法可以在java中生成與字母組合的ID嗎?
- 6. 有什麼辦法可以在Spring Tool Suite IDE中自動生成UML圖表
- 7. 有沒有什麼辦法可以從類中自動生成對象?
- 8. 有什麼辦法可以在ANT構建文件中指定引導目標?
- 9. 有什麼辦法可以將javadoc集成到TestNG報告中
- 10. 有沒有什麼辦法可以從C++源代碼生成webkit idl
- 11. 有沒有什麼辦法可以生成DOCX文件的縮略圖?
- 12. 有什麼辦法可以這樣嗎?
- 13. 有什麼辦法可以緩存ASIFormDataRequest?
- 14. 有什麼辦法可以chroot linux filemanager?
- 15. 有什麼辦法以編程方式生成Python字節碼?
- 16. 有沒有什麼辦法可以自動化生成的原生查詢在Torque中的日誌記錄?
- 17. 有沒有什麼辦法可以在eclipse中編譯GnuTLS?
- 18. 有沒有什麼辦法可以在windows phone中創建pdf
- 19. 有沒有什麼辦法可以在DataGrid中顯示CheckBox
- 20. 有沒有什麼辦法可以在jQuery中捕捉空間
- 21. 有沒有什麼辦法可以在QGridLayout中刪除QWidget?
- 22. 有沒有什麼辦法可以在函數中使用get_sidebar?
- 23. 有沒有什麼辦法可以在MATLAB中增加'realmax'?
- 24. 有沒有什麼辦法可以在Python中定義枚舉?
- 25. 有什麼辦法可以將從heat.exe生成的組件分類爲功能?
- 26. 有什麼辦法可以生成編碼UI項目的exe文件嗎?
- 27. 有什麼辦法可以將C++程序轉換成ASP.NET嗎?
- 28. Jmeter遠程執行 - 有什麼辦法可以從ant提供全局屬性?
- 29. 有什麼辦法可以防止在.NET中移動文件?
- 30. 有什麼辦法可以在ServerSocketChannel中使用SSLContext?
下面的答案將工作,但你提到你正在使用維克斯。根據我正在閱讀的書「WIX:Windows Installer XML開發人員指南」,您可以將id定義爲*,Wix將爲您生成一個新的Guid。 所以你可以做