我有以下目录结构
在ANT构建文件中,我知道root_dir
,fixed_dir
,以及一个random_dir
目录或random_dir
下面的子目录(subdirX
) 。我需要确定random_dir
给出一些subdirX
的路径。是否可以在ANT中找到此目录,如果是,如何?
答案 0 :(得分:1)
这是一个经过测试的解决方案,用于在给定问题中提供的文件结构的任何嵌套级别中查找根目录的直接子目录,该子目录包含一些子目录subdirX
。
<property name="root.dir" location="${basedir}/root_dir" />
<property name="subdirX" value="subdir2.1" />
<target name="find-immediate-subdir-of-root-containing-subdirX">
<dirset dir="${root.dir}" includes="**/${subdirX}" id="mydirset" />
<pathconvert property="random_dir" pathsep="${line.separator}" refid="mydirset">
<mapper type="regexp"
from="^(${root.dir}${file.separator}[^${file.separator}]+).*"
to="\1"/>
</pathconvert>
<echo message="${random_dir}" />
</target>
find-immediate-subdir-of-root-containing-subdirX:
[echo] /ant/project/basedir/root_dir/random_dir
BUILD SUCCESSFUL
Total time: 1 second
答案 1 :(得分:0)
使用Ant addon Flaka,您将获得父项作为文件对象的属性(请参阅Flaka Manual,第3.7.2节,即
<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- let standard ant tasks, i.e. echo
understand EL expresssions -->
<fl:install-property-handler />
<echo>#{file('${basedir}').parent}</echo>
<!-- or without fl:install-property-handler use fl:echo-->
<fl:echo>#{file('${basedir}').parent}</fl:echo>
</project>
所以你会使用:
#{file('${yoursubdir}').parent