a) Pourquoi ne pas les jeter ensemble? Lorsque vous exécutez ant avec maven, vous ne pouvez pas appeler des cibles individuelles de toute façon, vous liez une course de fourmi à une phase maven. Ainsi, vous pouvez faire ce qui suit dans la phase de nettoyage:
<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>
et si vous avez besoin de plus de travail dans d'autres phases, ajouter des exécutions:
</execution> <!-- end tag from above -->
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<!-- some more ant tasks -->
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
b) si vous utilisez Maven, vous devriez penser comme le fait maven. Une grande partie de ce que vous faites dans votre tâche ant est le comportement par défaut de maven.
En phase de nettoyage, l'objectif clean:clean est exécuté, ce qui supprime le répertoire cible (et le pot avec lui). Si vous mettez tous les répertoires que vous utilisez sous la cible (ce qui est considéré comme une bonne pratique dans maven), maven les supprimera (et les créera) automatiquement.
Maven est tout au sujet de la convention:
- tout ce qui est généré va cible à l'intérieur
- classes et ressources pour l'artefact principal aller à l'intérieur cible/classes
- classes et ressources pour les tests vont à l'intérieur cible/classes de test
- les ressources générées vont à l'intérieur de target/generated-resources/yourfoldername
- sources générées vont dans target/generated-sources/yourfoldername
Tous les principaux plugins s'attendent à ce que vous respectiez ces conventions (ils ont des valeurs par défaut selon eux) et leur utilisation rendra la vie de maven plus facile.
E.g. mvn clean
veillera à ce que vous supprimiez tout ce qui a été généré. Il existe quelques exceptions, les plugins qui doivent stocker des données à différents endroits et ne peuvent donc pas être récupérés par clean: clean. Ces plugins fournissent généralement des mojos propres alternatifs (eclipse:clean et idea:clean sont des exemples), mais essayez de ne pas créer plus d'exceptions.De même, selon la convention maven, rien ne doit être créé en phase clean. Il y a beaucoup de phases pour générer des choses, comme generate-resources
, generate-sources
, generate-test-resources
, generate-test-sources
. Aussi: la création de dossiers est généralement inutile, tous les plugins maven que je connais créent des dossiers au besoin lors de l'écriture de fichiers.
Merci seanizer. Ça m'aide. – David