Как удалить набор каталогов с помощью Ant?

Если вы используете поиск Eclipse, вы можете включить опцию «DOTALL», чтобы сделать «.». сопоставить любой символ, включая разделители строк: просто добавьте «(? s)» в начале строки поиска. Пример:

(?s).*<FooBar>
13
задан jamesh 2 October 2008 в 22:36
поделиться

3 ответа

Вот ответ, который работал на меня:

<delete includeemptydirs="true">
    <fileset dir="${root}" defaultexcludes="false">
       <include name="**/*tmp*/**" />
    </fileset>
</delete>

у меня была добавленная сложность, которую я должен был удалить .svn каталоги также. С defaultexcludes, .* файлы исключались, и таким образом, пустые каталоги не были действительно пусты, и так не становились удаленными.

атрибут includeemptydirs (спасибо, flicken, XL-PlГјschhase) позволяет запаздыванию ** подстановочный знак соответствовать пустой строке.

23
ответ дан jamesh 2 October 2008 в 22:36
поделиться

попытка:

<delete includeemptydirs="true">
    <fileset dir="${root}">
          <include name="**/*tmp*/*" />
    </fileset>
</delete>
<час>

ThankYou flicken!

5
ответ дан Blauohr 2 October 2008 в 22:36
поделиться

Актер - это то, что мы также можем назвать предметом. Актеры что-то делают с предметами. Актер так называет, потому что это кто-то действует.

-121--3302843-

1 .Есть ли лаконичное имя для этой техники (аналогично внутренней, вложенной, анонимной)?

Многоклассная однофайловая демонстрация.

2. JLS говорит, что система может ввести ограничение на то, что эти вторичные классы не могут быть упомянуты кодом в других компоновочных единицах пакета, например, они не могут рассматриваться как закрытые пакеты. Действительно ли это меняется между реализациями Java?

Я не знаю ни одного из них, которые не имеют такого ограничения - все компиляторы на основе файлов не позволяют ссылаться на классы исходного кода в файлах, которые не названы так, как имя класса. (если скомпилировать файл с несколькими классами и поместить классы в путь к классам, то их найдет любой компилятор)

-121--593134-

Я просто хотел добавить, что часть решения, которая работала для меня, добавлялась /* * в конец пути включения. Я попытался удалить каталоги Eclipse .settings:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings">
</delete>

, но он не работал, пока я не изменил его на следующий:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings/**">
</delete>

По какой-то причине добавление /* * к пути удаляет файлы в соответствующем каталоге, все файлы во всех подкаталогах, подкаталогах и соответствующих каталогах. Добавление /* удаляет только файлы из соответствующего каталога, но не удаляет соответствующий каталог.

4
ответ дан 1 December 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: