【问题标题】:Ant - How to set ${ant.project.name} to project folder name?Ant - 如何将 ${ant.project.name} 设置为项目文件夹名称?
【发布时间】:2012-11-14 08:41:35
【问题描述】:

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

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

这可能吗?

【问题讨论】:

    标签: ant


    【解决方案1】:

    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
    

    【讨论】:

    • 感谢您的回复!我只是想动态/自动将项目文件夹名称分配给项目名称属性。例如如果我创建一个名为“test”的项目文件夹,它应该被动态分配给 build.xml 中的项目名称属性。如果我更改项目文件夹的名称,它应该反映在 build.xml 中,而无需我的干预。有一种方法可以通过设置 -Dant.project.name=test。但是,在这里我也试图自动获取当前文件夹的名称。在 Windows 中,这非常棘手。 for %* in (.) do @echo %~n* 为我们提供当前文件夹名称。你能告诉我怎么做吗?谢谢!
    • @Faisal 答案已更新。我不建议覆盖标准属性。而是使用自定义的。
    【解决方案2】:

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

    但是,如果您坚持,您可以通过不在&lt;project&gt; 实体中设置${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>
    

    【讨论】:

      【解决方案3】:

      ant.project.name 属性由 Ant 在运行时设置,无法更改。有一些像这样的内置参数,documented on the Ant website. 如果您需要可以更改的属性,您可能对ant contrib's var. 感兴趣

      【讨论】:

      • 当 ant -Dant.project.name=test 是可能的,恕我直言,这也应该是可能的。顺便说一句,我正在尝试通过 -D 分配当前文件夹名称。在 DOS 中,for %* in (.) do @echo %~n* 打印当前文件夹名称。我正在尝试将其分配给属性 -Dant.project.name。
      猜你喜欢
      • 2018-07-05
      • 2014-09-01
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多