13

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

我的 repo 中的许多文件导致性能不佳,并且获取工件的时间很长。我想将回购精简到最新的快照。

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

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

4

2 回答 2

12

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

我添加了以下内容,每个构建的包都清除了旧的快照,以保持我的本地存储库修剪并确保在 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 回答