41

${project.build.outputDirectory}/resourcespom.xml に 2 つのプロファイルがあり、最初のプロファイルの実行中にターゲット リソース ディレクトリに追加したリソース ファイルがいくつかあります。私がする必要があるのは、2 番目のプロファイルの実行中にこれらのリソース ファイルを削除することです。ターゲットディレクトリから既存のファイルを削除または削除する方法はありますか?

4

6 に答える 6

38

私はマシューの観察に同意しますが、元の投稿者はclean、プロファイルの (通常の) 「実行」中に実行を自動化する方法を尋ねていたという印象を受けました。

Maven Clean Plugin のプラグイン実行を定義できます。通常は にのみバインドされcleanますが、プラグインの実行を定義することで、必要なライフサイクル フェーズclean:cleanにバインドできます(プラグインのclean目標です) 。Maven Clean Plugin のドキュメントには、これを行う方法の例があります。ドキュメントには、追加のファイルを削除する例もあります。2つをマージすると、次のようになります。clean

  <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>
于 2013-09-06T08:34:02.070 に答える
19

mvn cleantargetディレクトリ(したがって、その中のすべてのファイル)を削除します。targetディレクトリから特定のファイルのみを削除する場合は、次の組み合わせ:

  • excludeDefaultDirectoriesディレクトリ全体の削除を停止する

  • filesets何を削除するかを伝える

参照: http://maven.apache.org/plugins/maven-clean-plugin/clean-mojo.html

于 2013-09-05T14:11:18.093 に答える
6

上記の回答に感謝します。最終的に私は次のようなものになりました:

ターゲット フォルダ内のいくつかのディレクトリを削除する だけの場合は、次のような構成を作成する必要があります。 たとえば、これはフォルダーのすべてのコンテンツのみを削除します。

  • ターゲット/アンパック
  • gen-external-apklibs

excludeDefaultDirectoriesは、完全なターゲット フォルダを削除しないようにします。
リント分析の前にターゲットフォルダーをクリーンアップするために使用しました。

       <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>
于 2014-10-17T16:43:40.370 に答える