1

我有以下目录结构

  • 根目录
    • 固定目录
    • 随机目录
      • 子目录1
      • 子目录2
        • 子目录2.1
      • 子目录3
        • 子目录3.1
        • 子目录3.2

在 ANT 构建文件中,我知道root_dirfixed_dir和一个目录,它是( )random_dir下面的子目录或子目录。我需要确定给定一些的路径。是否可以在 ANT 中找到该目录,如果可以,如何找到?random_dirsubdirXrandom_dirsubdirX

4

2 回答 2

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
于 2012-08-06T18:53:04.913 回答
0

使用Ant 插件 Flaka,您将获得作为文件对象的属性的父级(参见Flaka 手册,第 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
于 2012-08-06T17:51:43.263 回答