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

Pet*_*ahn 10 plugins repository maven

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

我的repo中的许多文件导致性能不佳,并且获取工件的时间很长.我想将repo保留到最新的快照.

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

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

Pet*_*ahn 10

这类似于如何有效地处理maven-3时间戳快照

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

     <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>
Run Code Online (Sandbox Code Playgroud)


小智 6

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

如果任何其他项目需要以前的发行版本,则必须从非本地存储库(例如Nexus)再次下载,并且一旦创建了此快照的"包",将再次删除.

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

可以选择定义' snapshotsOnly ',并且只删除快照,而不删除以前的稳定版本.