Как мне перечислить субдиректории первого уровня только в Ant? - PullRequest
4 голосов
/ 20 февраля 2012

Используя Ant, как я могу перечислить подпапки только с первого уровня, не переходя вниз по дереву каталогов?

скажем, у меня есть:

dir1
-- dir21
----dir211
-- dir22

<dirset dir="dir1"/>

перечислит все каталоги, включаяdir211.Как я могу избежать этого?

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Используйте dirset следующим образом:

<dirset dir="dir" includes="*"/>

или

<dirset dir="dir1">
 <include name="*"/>
</dirset>

РЕДАКТИРОВАТЬ после комментария

includes attribute и nested include name должны быть эквивалентны, вот некоторый фрагмент
, работающий на моей машине с Windows, с учетом C: \ foo \ bar:

<project>
 <echo>
    ${ant.version}
    ${java.version}
    ${os.name}
 </echo>
 <dirset dir="c:/foo" includes="*" id="foobar" />

 <echo>${toString:foobar}</echo>


 <dirset dir="c:/foo" id="foobaz">
  <include name="*" />
 </dirset>

 <echo>${toString:foobaz}</echo>
</project>

output:

Buildfile: C:\rosebud\AntTest\tryme.xml
     [echo]     Apache Ant(TM) version 1.8.2 compiled on December 20 2010
     [echo]     1.7.0_02
     [echo]     Windows 7
     [echo]  
     [echo] bar
     [echo] bar
BUILD SUCCESSFUL
0 голосов
/ 05 мая 2016

Я хотел включить селектор даты в свой набор и выбрать только подкаталоги моего корневого каталога, чтобы я не мог использовать includes="*". Мое решение состояло в том, чтобы использовать <depth> селектор

<dirset dir="/myroot" excludes="*/*/**">
   <date datetime="${cuttoff_time}"
         pattern="${timeformat}"
         when="before"
         checkdirs="true" />
   <depth max="1" />
</dirset>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...