我有一个属性,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