如何从本地仓库中轻松删除所有过时的快照?
我的repo中的许多文件导致性能不佳,并且获取工件的时间很长。我想把repo缩小到最新的快照。
我看到dependency:purge-local-repository可以清除本地存储库,但我想保持最新状态。 我可以轻松地创建一个脚本来完成这项工作(并将其包装在插件中),但如果已经有一个工具可以清除最新版本,则不想重新发明轮子。
是否有一个插件可以清除我对最新快照或最后X个快照的依赖?
答案 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;,并且只会删除快照,而不会删除以前的稳定版本。