设置Ant项目名称
我正在尝试在项目声明之后更改ant.project.name属性。我知道这是不可取的,但这是唯一的方法,我可以解决一个大问题,我的项目。 我发现了一些像这样有趣的帖子: 而不是使用:设置Ant项目名称,ant,properties-file,Ant,Properties File,我正在尝试在项目声明之后更改ant.project.name属性。我知道这是不可取的,但这是唯一的方法,我可以解决一个大问题,我的项目。 我发现了一些像这样有趣的帖子: 而不是使用: <project basedir="." default="package"> <basename property="ant.project.name" file="${basedir}"/> </project> 我希望使用“值”而不是属性“文
<project basedir="." default="package">
<basename property="ant.project.name"
file="${basedir}"/>
</project>
我希望使用“值”而不是属性“文件”直接设置ant.project.name。
你有什么想法或建议吗?还是其他方式
谢谢大家! 正如其他人已经提到的,不建议更改标准ant属性的值。
此外,属性一旦设置,在ant中是不可变的,这是有充分理由的。
重写属性应该明智地使用,而且很少使用。
属性ant.project.name通常通过project的name属性设置
=>
但它不是强制性的,意思是代码>足以使xml成为有效的antscript。
在您的情况下,${ant.project.name}
会回显${ant.project.name}
,
因为没有设置属性,所以您可以在脚本中使用属性任务创建它:
但是使用通常用于“ant内部”的属性名称似乎不是最佳选择。
如果在项目标记中设置了属性,则可以通过使用内置javascript引擎和ant api覆盖该值,f.e.:
<project name="foo">
<property name="bla" value="foobar"/>
<echo>1. $${ant.project.name} => ${ant.project.name}</echo>
<script language="javascript">
project.setUserProperty('ant.project.name', project.getProperty('bla'));
</script>
<echo>2. $${ant.project.name} => ${ant.project.name}</echo>
</project>
注意:由于ant.project.name不是“普通”属性(那些通过ant脚本中的属性任务声明的属性),您必须使用方法project.setUserProperty(String,String)
而不是project.setProperty(String,String)
。Userproperties是通过-Dkey=value命令行参数定义的属性,并享受特殊保护
Ant还提供了一系列
[echo] 1. ${ant.project.name} => foo
[echo] 2. ${ant.project.name} => foobar