【发布时间】:2012-11-14 08:41:35
【问题描述】:
如何设置 ${ant.project.name} 值?我想将其设置为: ${ant.project.name}=${basedir}
我不想从 build.xml 设置项目名称。我的想法是 - 它应该自动取文件夹的名称。
这可能吗?
【问题讨论】:
标签: ant
如何设置 ${ant.project.name} 值?我想将其设置为: ${ant.project.name}=${basedir}
我不想从 build.xml 设置项目名称。我的想法是 - 它应该自动取文件夹的名称。
这可能吗?
【问题讨论】:
标签: ant
ANT 属性 ant.project.name 旨在返回出现在构建文件顶部的字符串。它具有特殊含义,不应真正更改。
以下示例演示了如何使用替代属性(这也适用于 Windows):
<project name="demo" default="run">
<basename property="my.project.name" file="${basedir}"/>
<target name="run">
<echo message="ant.project.name=${ant.project.name}"/>
<echo message="my.project.name=${my.project.name}"/>
</target>
</project>
有以下输出
run:
[echo] ant.project.name=demo
[echo] my.project.name=myprojectdirname
【讨论】:
当您可以设置任何其他您想要的属性时,为什么您如此专注于设置此特定属性?这也真的没有任何意义。项目的名称完全独立于您将其签出到的目录的名称。
但是,如果您坚持,您可以通过不在<project> 实体中设置${ant.project.name} 来设置它:
<project basedir="." default="package"> <!-- Notice no name! -->
<basename property="ant.project.name"
file="${basedir}"/>
<target name="package">
<echo>The name of this project is ${ant.project.name}</echo>
</target>
</project>
【讨论】:
ant.project.name 属性由 Ant 在运行时设置,无法更改。有一些像这样的内置参数,documented on the Ant website. 如果您需要可以更改的属性,您可能对ant contrib's var. 感兴趣
【讨论】: