Apache Ant - 选择所有符号链接
问题描述:
我需要Apache Ant中的符号链接选择器。Apache Ant - 选择所有符号链接
following selectors可用于核心。
任何人都可以建议我写一个<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任务遍历它们,然后调用一个目标,在该目标中可以根据需要随文件执行任何操作。
什么是您的操作系统? – FailedDev
Linux,但更改为Ant(来自Make),因为我也想在Windows 7上构建。 –