Pom.xmlに2つのプロファイルがあり、ターゲットリソースディレクトリに追加したいくつかのリソースファイルがあります:${project.build.outputDirectory}/resources
最初のプロファイルの実行中。 2番目のプロファイルの実行中にこれらのリソースファイルを削除する必要があります。ターゲットディレクトリから既存のファイルを削除または削除する方法はありますか?
私は解決策を得た.. !!
<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>
参照用- http://maven.Apache.org/guides/mini/guide-building-for-different-environments.html
私はマシューの観察に同意しますが、元のポスターがプロファイルの(通常の)「実行」中にclean
の実行を自動化する方法を尋ねているという印象を受けました。
Maven Clean Pluginに プラグインの実行 を定義できます。通常はclean
にのみバインドされますが、プラグインの実行を定義することにより、clean:clean
(それはclean
プラグインのclean
目標です) ライフサイクルフェーズ どちらでもかまいません。 Maven Clean Pluginのドキュメントには、これを行う方法の 例 があります。ドキュメントには、追加ファイルを削除する 例 もあります。この2つをマージすると次のようになります。
<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
はtarget
ディレクトリ(およびその中のすべてのファイル)を削除します。 target
ディレクトリから特定のファイルのみを削除する場合は、次の組み合わせ:
excludeDefaultDirectories
は、ディレクトリ全体の削除を停止します。
filesets
は削除するものを指示します
参照: http://maven.Apache.org/plugins/maven-clean-plugin/clean-mojo.html
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>
上記の回答に感謝します。最終的に私は次のようなものに来ました:
j st deletesomeターゲットフォルダ内のディレクトリにしたい場合は、いくつかを作成する必要がありますこのように構築します。
これは、たとえばフォルダーのすべてのコンテンツのみを削除します。
excludeDefaultDirectories n otが完全なターゲットフォルダーを削除を許可します。
iを使用して、リント分析の前にターゲットフォルダをクリーンアップしました。
<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>
出力ディレクトリからファイルをいくつか削除するだけで、次のことがうまくいきました。
<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>
また、<tasks> .... </tasks>
の間に必要なタスクを置き換える場合、ここで任意のantコマンドを実行できると考えられ、それが機能します。
実行できるantタスクのリストは here です
参照: http://maven.Apache.org/plugins/maven-antrun-plugin/usage.html