Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ant中更改属性值_Ant - Fatal编程技术网

在Ant中更改属性值

在Ant中更改属性值,ant,Ant,我不想在任务中使用propertyregex,但我需要修改一个属性。我正在使用cabarc命令(我无法使任务工作),我需要去掉驱动器名称 ${basedir} = "D:\some\directory\blah\blah" ${cwd} = some\directory\blah\blah" 我需要这个来去除cabarc中的路径(但仍然使用目录)。我最后做了以下几件事: <!-- Create a property set with just basedir --> <!--

我不想在任务中使用propertyregex,但我需要修改一个属性。我正在使用
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>