4

如何设置 ${ant.project.name} 值?我想将其设置为:${ant.project.name}=${basedir}

我不想从 build.xml 设置项目名称。我的想法是 - 它应该自动取文件夹的名称。

这可能吗?

4

3 回答 3

10

The ANT property ant.project.name is designed to return the string that appears at the top of your build file. It has special meaning and shouldn't really be changed.

The following example demonstrates how you could use an alternative property (This should work on windows as well):

<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>

Has the following output

run:
     [echo] ant.project.name=demo
     [echo] my.project.name=myprojectdirname
于 2012-11-27T05:48:26.367 回答
2

当您可以设置您心中想要的任何其他属性时,为什么您如此热衷于设置此特定属性?这也真的没有任何意义。项目的名称完全独立于您将其签出到的目录的名称。

但是,如果您坚持,您可以${ant.project.name}通过不在<project>实体中设置来设置:

<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>
于 2012-11-28T04:11:59.360 回答
1

ant.project.name属性由 Ant 在运行时设置,不能更改。Ant 网站上记录了一些这样的内置参数。 如果您需要可以更改的属性,您可能会对ant contrib 的 var 感兴趣。

于 2012-11-26T20:38:18.330 回答