我正在运行一个dockerized Nexus Repository Manager v2.13.0-01。我在Snapshot存储库中有要使用Remove Snapshots
计划任务删除的工件。此计划任务的参数如下:
当我运行此任务时,我希望至少保留1个快照,并删除超过1天的所有其他快照。我在Browse Storage
标签上时注意到的是,所有.jar
+ .pom
个文件都被删除,包括相关的.md5
和.sha1
文件。例如,删除以下文件。
但是,关联的.asc
,.asc.md5
和.asc.sha1
哈希值 NOT 被删除。例如,
以下是我用于在pom.xml
中发布到我的SNAPSHOT存储库的2个maven插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>mycompanynexus</serverId>
<nexusUrl>http://nexus.mycompanynexus.io/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
pom.xml
中的我的分发管理部分如下所示。
<distributionManagement>
<snapshotRepository>
<id>mycompanynexus</id>
<url>http://nexus.mycompanynexus.io/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>mycompanynexus</id>
<url>http://nexus.mycompanynexus.io/content/repositories/releases/</url>
</repository>
</distributionManagement>
我的settings.xml
未显示,我提供了发布到这些存储库的凭据。
部署时,我只需使用Maven v3.3.9输入mvn clean deploy
。
当我查询解决方案时,我发现了这篇博文http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/,但是,我不知道我是否同意不签署我的SNAPSHOT文件(如果我没有,然后不会产生GPG签名和校验和,我不必担心用预定的服务删除它们。此外,OSSRH的指南说明签署SNAPSHOT工件。也许 标准做法是不签署SNAPSHOT工件?
感谢任何帮助。
答案 0 :(得分:1)
对于Nexus Repository Manager的内部使用,使用GPG签署工件可能不是标准做法 - 未发布,也不是快照。但是,为了通过OSSRH分发到中央存储库,它很常见,尽管可能也不是标准的。
通常,GPG插件使用是发布配置文件的一部分,通常不用于快照部署。因此,根据您的内部需求,您可以完全不使用GPG,也可以不使用快照构建。
另一方面,快照删除计划任务应该适用于该删除。但是,在上一版本中,性能和行为方面有一些变化。我刚刚对此进行了测试,结果发现2.11+有一个回归。我们在https://issues.sonatype.org/browse/NEXUS-10460创建了一个问题。请关注更新。希望我们将在下一个版本(2.14)中包含一个修复程序。
2016-07-13更新:现在有一个补丁,固定的jar附加到链接的问题。