ANT 从属性文件中读取属性,使用 ANT 属性

Posted

技术标签:

【中文标题】ANT 从属性文件中读取属性,使用 ANT 属性【英文标题】:ANT Reading property from property files, using an ANT property 【发布时间】:2016-09-08 15:35:48 【问题描述】:

给你一个简单的问题..

我有一个像这样的值的属性文件

 CommercialManager=MOT
 CommercialUser=AT
 CommercialAdmin=POT

我正在从 Jenkins 调用 Ant 脚本,传递一些变量.. 其中一些变量用于从属性文件中获取动态属性..

我的意思是,如果我从选择列表中选择 CommercialAdmin 变量进入 jenkins 作业,我想获得具有该名称的属性。

在 Jenkins JOB 中选择的值设置在变量 ROLE 中,该变量被传递给我的 ANT 脚本..

在我的代码下面:

<property file="Profiles.properties" prefix="profiles"/>

<echo>$profiles.CommercialManager</echo> 

这样做一切正常,打印出来 交通运输部 但正如您所看到的,该值不是动态的,不是从詹金斯工作中获得的。..

所以我应该这样做:

<echo>$ROLE</echo>

但如果我这样做,打印会返回属性 ROLE 的值,即:

profiles.CommercialManager

而不是从属性文件中获取的值..

我该如何管理?我认为这很容易,但为时已晚,我陷入了混乱的海洋......

非常感谢!

【问题讨论】:

【参考方案1】:

有多种方法可以从其他线程中描述的变量动态获取属性值:

In Ant, how can I dynamically build a property that references a property file? Dynamic property names in ant

就个人而言,我会使用 javascript

<property file="Profiles.properties" prefix="profiles"/>

<script language="javascript"><![CDATA[
    project.setProperty("CommercialManager", project.getProperty("$Role"))
]]>
</script>

<echo>$CommercialManager</echo>

【讨论】:

以上是关于ANT 从属性文件中读取属性,使用 ANT 属性的主要内容,如果未能解决你的问题,请参考以下文章

读取ant taskdef中的属性文件

从 Ant build.xml 中的 .properties 文件中读取

为啥 Ant 在属性文件中添加等号

Ant属性文件

如何使用 ant build 从属性文件中删除注释属性?

ant propertyfile task update property 删除属性文件中的所有注释