我有一個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. 有什麼辦法可以生成級聯刪除語句嗎?
- 2. 有沒有什麼辦法可以生成一個與UUID(GUID)不同的唯一編號?
- 3. 有什麼辦法可以在Spring Tool Suite IDE中自動生成UML圖表
- 4. 有沒有什麼辦法可以從類中自動生成對象?
- 5. 有什麼辦法可以在ANT構建文件中指定引導目標?
- 6. 有什麼辦法可以將javadoc集成到TestNG報告中
- 7. 有沒有什麼辦法可以生成DOCX文件的縮略圖?
- 8. 有什麼辦法可以chroot linux filemanager?
- 9. 有什麼辦法以編程方式生成Python字節碼?
- 10. 有沒有什麼辦法可以在eclipse中編譯GnuTLS?
- 11. 有沒有什麼辦法可以在DataGrid中顯示CheckBox
- 12. 有什麼辦法可以將從heat.exe生成的組件分類爲功能?
- 13. 有什麼辦法可以生成編碼UI項目的exe文件嗎?
- 14. 有什麼辦法可以將C++程序轉換成ASP.NET嗎?
- 15. 有什麼辦法可以防止在.NET中移動文件?
- 16. 有什麼辦法可以在jQuery中實現MaintainScrollPositionOnPostBack功能
- 17. 有什麼辦法可以在R中創建「脆弱」屬性?
- 18. 有什麼辦法可以在Android中打開.doc文件?
- 19. 有什麼辦法可以在Xamarin Android中添加Java庫
- 20. 有什麼辦法可以在CSS文件中做「如果IE」?
- 21. 有什麼辦法可以在Emacs中創建「項目文件」?
- 22. 有什麼辦法可以在ServerSocketChannel中使用SSLContext?
- 23. 有什麼辦法可以在datagridview中新增行嗎?
- 24. 有什麼辦法可以在Coldfusion中使用驗證碼
- 25. 有什麼辦法可以避免在Oracle中觸發級聯?
- 26. 有什麼辦法可以在typescript中委託索引屬性?
- 27. 有什麼辦法可以在LaTeX中定義一個變量?
- 28. 有什麼辦法可以在sql中使用函數嗎?
- 29. 有什麼辦法可以在xaml中創建粘性頁腳?
- 30. 有什麼辦法可以取消在Appengine中刪除索引?
下面的答案將工作,但你提到你正在使用維克斯。根據我正在閱讀的書「WIX:Windows Installer XML開發人員指南」,您可以將id定義爲*,Wix將爲您生成一個新的Guid。 所以你可以做