13

ローカル リポジトリからすべての古いスナップショットを簡単に削除するにはどうすればよいですか?

私のレポに多くのファイルがあるとパフォーマンスが低下し、アーティファクトを取得するのに時間がかかります。レポを最新のスナップショットに切り詰めておきたいと思います。

dependency:purge-local-repositoryはローカル リポジトリをクリアできることがわかりましたが、最新の状態を維持したいと考えています。この作業を行うためのスクリプトを簡単に作成できます (そしてそれをプラグインにラップします) が、最新のものにパージするためのツールが既にある場合、車輪を再発明したくありません。

依存関係を最新のスナップショットまたは最後の X スナップショットにパージできるプラグインはありますか?

4

2 に答える 2

12

これは、 how-do-you-deal-with-maven-3-timestamped-snapshots-effectively に似ています

以下を追加し、各ビルドのパッケージが古いスナップショットをクリアして、ローカル リポジトリのトリムを維持し、かさばるリポジトリに問題がある Windows でのビルドを高速化します。

     <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>           
            <execution>             
                <id>remove-old-artifacts</id>             
                <phase>package</phase>             
                <goals>               
                    <goal>remove-project-artifact</goal>             
                </goals>            
                <configuration>  
                    <removeAll>true</removeAll><!-- remove all versions of built artifacts including all versions.  Install phase will regenerate -->             
                </configuration>          
                </execution>         
        </executions>             
    </plugin>
于 2012-10-12T18:06:38.173 に答える
7

Peter のソリューションでは、リリースとすべてのスナップショットを含め、現在のアーティファクト (親 pom に適用されている場合はアーティファクトのグループ) のすべての古いバージョンが削除されます。

他のプロジェクトで以前のリリース バージョンが必要な場合は、非ローカル リポジトリ (Nexus など) から再度ダウンロードする必要があり、このスナップショットの「パッケージ」を作成すると、再び削除されます。

この問題の別のオプションを見てきました: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

「 snapshotsOnly 」を定義するオプションがあり、以前の安定リリースではなく、スナップショットのみを削除します。

于 2014-05-07T13:04:17.350 に答える