а) Почему бы просто не бросить их вместе? Когда вы запускаете муравей с maven, вы все равно не можете вызывать отдельные цели, вы привязываете муравейник к фазе maven. Таким образом, вы можете сделать следующее в чистой фазе:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>clean</phase>
<configuration>
<tasks>
<delete file="${dir.dist}/${api.jarfile}" />
<delete dir="${dir.build}/**" />
<mkdir dir="${dir.build}" />
<mkdir dir="${dir.generated.code.junit}/build" />
<mkdir dir="${dir.dist}" />
<mkdir dir="${dir.deploy}" />
<mkdir dir="${dir.dist}" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
и, если вам нужно больше работать на других этапах, добавьте больше исполнений:
</execution> <!-- end tag from above -->
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<!-- some more ant tasks -->
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
б) если вы используете maven, вы должны думать так же, как maven. Многое из того, что вы делаете в своей задаче ant, - поведение по умолчанию maven.
На этапе очистки выполняется цель clean: clean , которая удаляет целевой каталог (и jar вместе с ним). Если вы поместите все используемые вами каталоги под цель (что считается хорошей практикой в maven), maven автоматически удалит их (и создаст).
Maven это все о конвенции:
- все, что генерируется, попадает внутрь цели
- классы и ресурсы для основного артефакта входят в цель / классы
- классы и ресурсы для тестирования идут внутри target / test-classes
- сгенерированные ресурсы попадают внутрь target / генерируемые ресурсы / yourfoldername
- сгенерированные источники попадают внутрь target / генерируемые источники / yourfoldername
Все основные плагины ожидают, что вы будете следовать этим соглашениям (они имеют значения по умолчанию в соответствии с ними), и их использование значительно облегчит жизнь maven.
например. mvn clean
гарантирует, что вы удалите все, что было сгенерировано.
Есть несколько исключений: плагины, которые должны хранить данные в разных местах и поэтому не могут быть выбраны командой clean: clean. Эти плагины обычно предоставляют альтернативные чистые mojos ( eclipse: clean и idea: clean являются примерами), но стараются не создавать больше исключений.
Кроме того, в соответствии с конвенцией maven, ничего не должно создаваться на этапе очистки. Есть много фаз для генерации вещей, таких как generate-resources
, generate-sources
, generate-test-resources
, generate-test-sources
. Кроме того: создание папок обычно не требуется, все известные мне плагины maven создают папки по мере необходимости при записи файлов.