Apache Ant -选择所有符号链接



我需要一个Apache Ant中的符号链接选择器。

以下选择器可用于核心。

谁能建议我写一个<scriptselector>只选择一个目录下的符号链接文件?或者其他方式?

的原因:

folder
|-- file-0.0.1
|-- file-0.0.2
|-- file-0.0.3
`-- file --> file-0.0.3

我只想得到由file符号链接的文件。在这种情况下,file-0.0.3,但符号链接可以改变,我不希望所有其他文件都在蚂蚁<fileset>

请看:

http://ant.apache.org/manual/Tasks/symlink.html

我现在没有linux机器可以测试,但是我想可以这样做:

<symlink action="record" linkfilename="my.links">
 <fileset dir="${my.folder}" includes="*"/>
</symlink>

你应该能够将你的符号链接记录到一个文件中,然后按照你的意愿处理这些文件。例如,您可以只使用"符号链接"文件创建一个列表,并遍历它来做您想做的事情。

编辑:

对于这个解决方案,您需要安装ant-contrib。只需将ant-contrib-1.0b3.jar解压缩到ant/lib目录。然后使用以下build.xml文件:
<project name="test" default="build">
  <!--Needed for antcontrib-->
  <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
  <target name="build">
  <property name="my.dir" value="/home/stefanos"/>
  <exec executable="bash" outputproperty="symlinks" dir="${my.dir}">
     <arg value="-c"/>
     <arg value="ls -1 | xargs -l readlink"/>
  </exec>
<foreach list="${symlinks}" delimiter="${line.separator}" param="link" target="process.link"/>    
</target>
<target name="process.link">
   <!--Do whatever you want with the file targeted by the symlink-->
   <echo message="Processing link : ${link}"/>
</target>
</project>

诀窍是linux命令,它从符号链接返回所有目标文件。然后,您只需使用foreach任务遍历它们并调用一个目标,您可以在其中对文件执行任何需要的操作。

相关内容

  • 没有找到相关文章

最新更新