在Ant build.properties中添加环境变量

时间:2015-10-29 15:06:15

标签: java ant

是否可以在$XXX_HOME文件中使用build.properties样式变量?

我在build.properties这样设置变量的路径

ant.home=/opt/java/myanthome

我有一个$ANT_HOME环境变量,其路径正确。我可以使用此环境变量在b ant.home中设置uild.properties吗?我试图在build.xml中添加它

<property environment="env"/>
<property file="build.properties" />

并在build.properties文件中:

ant.home=${env.ANT_HOME}

但这不起作用,它说:

  

${env.ANT_HOME}不存在

1 个答案:

答案 0 :(得分:1)

这是可能的,但这样做是没有意义的。

您可以添加预处理属性文件的filter。请考虑以下属性文件:

CREATE INDEX events_dtt_idx
  ON events
  USING btree
  (dtt);

CREATE INDEX events_id_desc
  ON events
  USING btree
  (id DESC NULLS LAST);

CREATE INDEX events_cus_idx
  ON events
  USING btree
  (cus);

CREATE INDEX events_id_idx
  ON events
  USING btree
  (id);

然后,您可以对其进行过滤并将文件加载到属性中,如下所示:

ant.home=@ANT_HOME@

过滤器任务除了<filter token="ANT_HOME" value="${env.ANT_HOME}"/> <copy file="build.properties" tofile="build.properties.filtered" filtering="true" /> <property file="build.properties.filtered" /> 之外,还会将filtering=true令牌替换为@ANT_HOME@的值。

但是在完成所有这些之后,问题是,为什么要过滤属性文件开始?您只需从文件中删除${env.ANT_HOME}属性,然后在必要时直接使用ant.home