J'ai deux profils dans pom.xml et des fichiers de ressources que j'ai ajoutés au répertoire de ressources cible: ${project.build.outputDirectory}/resources
lors de l'exécution du premier profil. Ce que je dois faire est de supprimer ces fichiers de ressources lors de l’exécution du deuxième profil . Y at-il un moyen de supprimer ou de supprimer des fichiers existants du répertoire cible?
J'ai la solution .. !!
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete>
<fileset dir="${project.build.outputDirectory}/resources" includes="*.xml" />
</delete>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
pour référence - http://maven.Apache.org/guides/mini/guide-building-for-different-environments.html
Je suis d'accord avec les observations de Matthew, mais j'ai eu l'impression que l'affiche originale demandait comment automatiser l'exécution de clean
pendant "l'exécution" (normale) d'un profil.
Vous pouvez définir une exécution plugin pour le plug-in Maven Clean. Il n'est normalement lié qu'à clean
, mais en définissant une exécution de plug-in, vous pouvez lier clean:clean
(c'est-à-dire l'objectif clean
du plugin clean
) à la phase cycle de vie de votre choix. La documentation du plug-in Maven Clean contient un exemple expliquant comment faire cela. La documentation contient également un exemple de suppression de fichiers supplémentaires. Fusionné les deux ressemble à ceci:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<filesets>
<fileset>
<directory>some/relative/path</directory>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
mvn clean
supprimera le répertoire target
(et donc tous les fichiers qu'il contient). Si vous souhaitez supprimer uniquement certains fichiers du répertoire target
, combinez les éléments suivants:
excludeDefaultDirectories
pour l'empêcher de supprimer tout le répertoire, et
filesets
pour lui dire quoi supprimer
ref: http://maven.Apache.org/plugins/maven-clean-plugin/clean-mojo.html
Solution avec Apache Maven AntRun Plugin 1.8 :
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<delete
dir="${project.build.outputDirectory}/resources"
includeemptydirs="true"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
grâce aux réponses ci-dessus. enfin je suis arrivé à quelque chose comme:
si vous voulez j_ {ust delete} _ _ {some dans le dossier cible, vous devez créer une construction comme celle-ci.
ceci par exemple ne supprime que tout le contenu des dossiers:
excludeDefaultDirectories permet de n ne pas supprimer le dossier cible complet.
Je l’ai utilisé pour nettoyer le dossier cible avant l’analyse des peluches.
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>Deleting all unnecessary files before lint analysis</id>
<phase>verify</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target/unpack</directory>
<followSymlinks>false</followSymlinks>
<excludes>
<exclude>*</exclude>
</excludes>
</fileset>
<fileset>
<directory>gen-external-apklibs</directory>
<followSymlinks>false</followSymlinks>
<excludes>
<exclude>*</exclude>
</excludes>
</fileset>
</filesets>
<verbose>true</verbose>
</configuration>
</plugin>
Je n'avais besoin que de quelques fichiers supprimés du répertoire de sortie, les opérations suivantes ont bien fonctionné pour moi.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.outputDirectory}/appContextLocal.xml" />
<delete
file="${project.build.outputDirectory}/appContextServer.xml" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
J'ai également pensé que vous pouvez exécuter n'importe quelle commande de fourmi ici pour remplacer la tâche dont vous avez besoin entre le <tasks> .... </tasks>
et cela fonctionnera.
La liste des tâches de fourmi que vous pouvez effectuer est ici
Réf: http://maven.Apache.org/plugins/maven-antrun-plugin/usage.html