Ich habe zwei Profile in pom.xml, und ich habe einige Ressourcendateien, die ich dem Zielressourcenverzeichnis hinzugefügt habe: ${project.build.outputDirectory}/resources
während der Ausführung des ersten Profils. Ich muss diese Ressourcendateien während der Ausführung des zweiten Profils entfernen. Gibt es eine Möglichkeit, vorhandene Dateien aus dem Zielverzeichnis zu entfernen oder zu löschen?
Ich habe die Lösung bekommen .. !!
<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>
als Referenz - http://maven.Apache.org/guides/mini/guide-building-for-different-environments.html
Ich stimme Matthews Beobachtungen zu, aber ich hatte den Eindruck, dass das ursprüngliche Poster gefragt wurde, wie die Ausführung von clean
während der (normalen) "Ausführung" eines Profils automatisiert werden sollte.
Sie können eine Plugin-Ausführung für das Maven Clean Plugin definieren. Normalerweise ist es nur an clean
gebunden, aber durch die Definition einer Plugin-Ausführung können Sie clean:clean
(das ist das clean
-Ziel des clean
-Plugins) an eine beliebige - Lifecycle-Phase an die Sie wollen. Die Dokumentation des Maven Clean Plugins enthält ein Beispiel wie das gemacht wird. Die Dokumentation hat auch ein Beispiel das Löschen zusätzlicher Dateien. Zusammengenommen sieht das zwei so aus:
<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
entfernt das target
-Verzeichnis (und damit alle darin enthaltenen Dateien). Wenn Sie nur bestimmte Dateien aus dem Verzeichnis target
entfernen möchten, eine Kombination aus:
excludeDefaultDirectories
, um zu verhindern, dass das gesamte Verzeichnis gelöscht wird, und
filesets
, um anzugeben, was gelöscht werden soll
ref: http://maven.Apache.org/plugins/maven-clean-plugin/clean-mojo.html
Lösung mit 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>
danke an obige antworten. Endlich kam ich zu etwas wie:
wenn Sie Verzeichnisse im Zielordner j (ust deletesome erstellen möchten, müssen Sie ein solches Konstrukt erstellen.
Dies löscht zum Beispiel nur den gesamten Inhalt von Ordnern:
excludeDefaultDirectories erlaubt es, n den gesamten Zielordner nicht zu löschen.
Ich habe es verwendet, um den Zielordner vor der Flusenanalyse zu bereinigen.
<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>
Ich brauchte nur ein paar Dateien, die aus dem Ausgabeverzeichnis gelöscht wurden. Folgende Funktionen funktionierten gut für mich.
<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>
Ich habe auch gedacht, dass Sie hier beliebige Ant-Befehle ausführen können, um die Aufgabe zu ersetzen, die Sie zwischen dem <tasks> .... </tasks>
benötigen, und es wird funktionieren.
Liste der Ameisenaufgaben, die Sie ausführen können, sind hier
Ref: http://maven.Apache.org/plugins/maven-antrun-plugin/usage.html