首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Ant项目名称

设置Ant项目名称
EN

Stack Overflow用户
提问于 2014-07-11 10:40:31
回答 1查看 1.4K关注 0票数 0

我试图在项目声明之后更改ant.project.name属性。我知道这是不可取的,但这是我解决我的项目的一个大问题的唯一方法。我发现了一些有趣的帖子,比如这个:

Ant -如何将${ant.project.name}设置为项目文件夹名?

而不是使用:

代码语言:javascript
复制
<project basedir="." default="package">
    <basename property="ant.project.name"
        file="${basedir}"/>
</project>

我想直接使用“ant.project.name”而不是属性"file“来设置该文件。你有什么想法或建议吗?还是另一种方式?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 11:53:01

正如其他人已经提到的,不建议更改标准ant属性的值。

此外,属性一旦设置,蚂蚁的设计是不变的,并有很好的理由。

重写属性应该明智地使用,而且很少使用。

属性ant.project.name通常是通过项目的名称属性设置的。

=> <project name="whatever">,但这不是强制性的,意思是

<project> ... </project>足以使您的xml成为有效的antscript。

在你的例子中,<echo>${ant.project.name}</echo>会回显${ant.project.name}

由于未设置属性,因此您可以在脚本中使用属性任务创建它:

<property name="ant.project.name" value="whatever"/>

但是使用通常用于'ant is‘的属性名称似乎不是最好的选择。

如果在项目标记中设置了属性,则可以使用内置javascript引擎和api,f.e通过脚本任务覆盖该值。:

代码语言:javascript
复制
<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>

产出:

代码语言:javascript
复制
[echo] 1. ${ant.project.name} => foo   
[echo] 2. ${ant.project.name} => foobar

注意: as ant.project.name不是“普通”属性(通过ant中的属性任务声明的属性),您必须使用project.setUserProperty(String, String)方法而不是project.setProperty(String, String)。Userproperties是通过-Dkey=value命令行参数定义的属性,并享有特殊的保护。

Ant还提供了一堆内建特性

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24695815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档