清除Maven本地存储库并保持最新状态?

时间:2012-09-24 20:00:15

标签: maven plugins repository

如何从本地仓库中轻松删除所有过时的快照?

我的repo中的许多文件导致性能不佳,并且获取工件的时间很长。我想把repo缩小到最新的快照。

我看到dependency:purge-local-repository可以清除本地存储库,但我想保持最新状态。 我可以轻松地创建一个脚本来完成这项工作(并将其包装在插件中),但如果已经有一个工具可以清除最新版本,则不想重新发明轮子。

是否有一个插件可以清除我对最新快照或最后X个快照的依赖?

2 个答案:

答案 0 :(得分:10)

这类似于how-do-you-deal-with-maven-3-timestamped-snapshots-efficiently

我添加了以下内容,每个构建的软件包清除旧的快照,保持我的本地存储库修剪,并确保在窗口上更快的构建,这会导致庞大的存储库出现问题

     <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>

答案 1 :(得分:6)

使用Peter的解决方案,将删除所有旧版本的当前工件(或工件组,如果应用于父pom),包括版本和所有快照。

如果任何其他项目需要以前的发布版本,则必须从非本地存储库(例如Nexus)再次下载,并且一旦您创建了一个&#39;此快照的内容将再次删除。

我已经看到了此问题的另一种选择:http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

可以选择定义&#39; snapshotsOnly &#39;,并且只会删除快照,而不会删除以前的稳定版本。