我有一個屬性,app.version,它被設置爲1.2.0(當然,總是在變化),需要創建名稱爲「something-ver-1_2_0」的zip文件。這可能嗎?是否可以替換Ant的build.xml中的屬性中的文本?
回答
可以使用pathconvert任務來代替「」與「_」並分配到一個新的屬性:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<property name="app.version" value="1.2.0"/>
<pathconvert property="app.version.underscore" dirsep="" pathsep="" description="Replace '.' with '_' and assign value to new property">
<path path="${app.version}" description="Original app version with dot notation" />
<!--Pathconvert will try to add the root directory to the "path", so replace with empty string -->
<map from="${basedir}" to="" />
<filtermapper>
<replacestring from="." to="_"/>
</filtermapper>
</pathconvert>
<echo>${app.version} converted to ${app.version.underscore}</echo>
</project>
有可能使用zip任務
<zip zipfile="something-ver-${app.version}.zip">
<fileset basedir="${bin.dir}" prefix="bin">
<include name="**/*" />
</fileset>
<fileset basedir="${doc.dir}" prefix="doc">
<include name="**/*" />
</fileset></zip>
有關拉鍊任務的詳細信息:http://ant.apache.org/manual/Tasks/zip.html
由於物業app.version
總是在變化我假設你不想硬編碼到屬性文件中,而是在構建時傳遞它。除此answer之外,您可以在命令行上嘗試以下操作:
ant -f build.xml -Dapp.version=1.2.0
將app.version
更改爲需要的那個。
編輯:
更好地理解從反饋你的問題。 Unfortunately螞蟻沒有字符串操作任務,你需要寫你自己task爲此。這是一個關閉example。
謝謝。這就是我需要的。有點亂,但工作:) – Shark 2009-12-30 08:03:28
pathconvert可以用來在ANT中執行字符串操作。 'mapper的還包括對正則表達式的支持。 – 2009-12-30 19:24:50
另一種方法是filter從文件中使用正則表達式的屬性的版本號,在這個例子中建議:
<loadfile srcfile="${main.path}/Main.java" property="version">
<filterchain>
<linecontainsregexp>
<regexp pattern='^.*String VERSION = ".*";.*$'/>
</linecontainsregexp>
<tokenfilter>
<replaceregex pattern='^.*String VERSION = "(.*)";.*$' replace='\1'/>
</tokenfilter>
<striplinebreaks/>
</filterchain>
</loadfile>
- 1. Apache Ant:是否可以插入/替換原始文本文件中的文本?
- 2. 是否可以將jar文件添加到build.xml中的ant類路徑中?
- 3. 是否可以在ant中指定屬性值作爲屬性?
- 4. 是否可以使用CSS替換腳本中的文本?
- 5. 是否可以在build.xml中爲ant指定記錄器?
- 6. 是否可以替換TYPO3中的RTE?
- 7. 使用ANT替換xml文件中的屬性
- 8. Ant屬性文件替換值問題
- 9. Ant通過xml文件中的屬性名稱替換屬性值
- 10. 與Ant中的Build.xml相關
- 11. 是否可以將Ant build.xml指向M2 Repo'Jar Files'?
- 12. ant:是否可以使用glob模式作爲屬性的位置屬性?
- 13. 是否可以在shell(zsh)中進行實時文本替換?
- 14. 在SSRS中,是否可以根據組的切換狀態更改文本框的可見性屬性?
- 15. domain.xml中的屬性替換
- 16. 是否可以在ASP.Net屬性中設置所需的屬性?
- 17. 是否有可能用PHP中的文本替換表達式?
- 18. 如何將包含屬性文件的目錄添加到Ant build.xml中?
- 19. Ant替換FTP文件中的任務
- 20. exec ant替換.m文件中的值
- 21. 是否可以引用styles.xml文件中的屬性?
- 22. 是否可以居中DateTimePicker的文本?
- 23. 如何替換Ant中的以前的jar文件
- 24. Ant替換不以
- 25. 是否可以搜索jdom的屬性?
- 26. 使用Ant執行build.xml文件時缺少必需屬性'select'
- 27. Ant:文件集中的連接屬性
- 28. 屬性文件中列表中的Ant宏屬性值
- 29. 是否可以替換/替換傳入的XSL數據?
- 30. 在ant中傳遞build.xml的位置
這將得到「something-ver-1.2.0.zip」,我需要接收「something-ver-1_2_0.zip」。也許,這是不可能的? :) – Shark 2009-12-30 07:32:14