如何获取变量的内容,该变量的名称是另一个属性的内容?



我有一个包含一些变量和值的属性文件:

ALL_WAR=*
CONS_WAR=cons-webapp.war
MAJ_WAR=maj-webapp.war
STATS_WAR=stats-webapp.war

我想通过读取我的脚本的参数来获得其中一个变量的内容。我的意思是:

我将用以下命令启动我的脚本:
ant -f install.xml -Dservice=ALL

我的脚本应该是这样的:

将要创建

...
<property name="war.file" value="${service}_WAR"/>
...
<copy todir="/tmp/auri">
     <fileset dir="${DELIVER_WEBAPP_DIR}" includes="${${war.file}}"/>
</copy>

${${战争。File}}声明获取属性文件中定义的变量之一的内容。我不知道这是不可能的还是怎么做

参见Ant FAQ双扩展属性,使用Ant插件Flaka的解决方案:

以-Dservice=ALL开头
<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- activate flaka property handler -->
<fl:install-property-handler/>
<property name="ALL_WAR" value="all-webapp.war"/>
<property name="war.file" value="${service}_WAR"/>
<echo>#{property[property['war.file']]}</echo>
</project>

将输出=> all-webapp.war
注意语法property['...']而不是${...},因为${war.file}中的点,
源自EL语法,详见http://code.google.com/p/flaka/issues/detail?id=17

这意味着如果使用属性名warfile而不是war。可以写入的文件:

<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- activate flaka property handler -->
<fl:install-property-handler/>
<property name="ALL_WAR" value="all-webapp.war"/>
<property name="warfile" value="${service}_WAR"/>
<echo>#{${warfile}}</echo>
</project>

相关内容

  • 没有找到相关文章

最新更新