在Ant中更改属性值
我不想在任务中使用propertyregex,但我需要修改一个属性。我正在使用在Ant中更改属性值,ant,Ant,我不想在任务中使用propertyregex,但我需要修改一个属性。我正在使用cabarc命令(我无法使任务工作),我需要去掉驱动器名称 ${basedir} = "D:\some\directory\blah\blah" ${cwd} = some\directory\blah\blah" 我需要这个来去除cabarc中的路径(但仍然使用目录)。我最后做了以下几件事: <!-- Create a property set with just basedir --> <!--
cabarc
命令(我无法使
任务工作),我需要去掉驱动器名称
${basedir} = "D:\some\directory\blah\blah"
${cwd} = some\directory\blah\blah"
我需要这个来去除cabarc中的路径(但仍然使用目录)。我最后做了以下几件事:
<!-- Create a property set with just basedir -->
<!-- Needed for loadproperties to work -->
<propertyset id="cwd">
<propertyref name="basedir"/>
</propertyset>
<loadproperties>
<propertyset refid="cwd"/>
<filterchain>
<tokenfilter>
<replaceregex pattern=".:\\"
replace="cwd="/>
</tokenfilter>
</filterchain>
</loadproperties>
这是可行的,但有点复杂,很难维护
有更简单的方法吗?进入状态;-)
properties.cwd'=properties.basedir'[3..-1]
或与:
#{replace('${basedir}','$1','.:\\\\\\(.+)')}
cwd:=替换('${basedir}','$1','.:\\\\\(.+)'))
披露=我作为Flaka项目的提交人参与进入最佳状态;-)
properties.cwd'=properties.basedir'[3..-1]
或与:
#{replace('${basedir}','$1','.:\\\\\\(.+)')}
cwd:=替换('${basedir}','$1','.:\\\\\(.+)'))
Disclosure=我作为提交人参与Flaka项目我想是时候学习groovy了。我不想使用Ant插件Flaka的原因与我不想使用AntContrib的原因相同。学习groovy你不会后悔的。它在ant中很有用,因为它旁边有自己的任务,您也可以通过antbuilder使用groovy中的ant。使用groovy创建ant脚本是可能的——不需要xml:-),毕竟它是纯Java,编译成Java字节码——我想是时候学习groovy了。我不想使用Ant插件Flaka的原因与我不想使用AntContrib的原因相同。学习groovy你不会后悔的。它在ant中很有用,因为它旁边有自己的任务,您也可以通过antbuilder使用groovy中的ant。使用groovy创建ant脚本是可能的(不需要xml:),毕竟它是纯Java的,在一个类似的问题中以其他方式编译为Java字节码:类似问题中的其他方式:
<groovy>
properties.'cwd' = properties.'basedir'[3..-1]
</groovy>
<project xmlns:fl="antlib:it.haefelinger.flaka" name="World">
<!-- simple echo -->
<fl:echo>#{replace('${basedir}', '$1' , '.:\\\\(.+)' )}</fl:echo>
<!-- set property -->
<fl:let>cwd := replace('${basedir}', '$1' , '.:\\\\(.+)' )</fl:let>
</project>