Nexus不会更新SNAPSHOT的元数据

时间:2013-05-24 11:42:54

标签: maven jenkins sbt ivy nexus

我的设置是一个jenkins,它会轮询我的git repo并在每次推送时发布到nexus repo。然后我有一个下游项目,它接受这个工件并将其部署到测试服务器。这个项目使用jenkins的工件解析器插件,只使用“LATEST”作为版本。

我注意到的是以下内容。发布新快照后,元数据仅在特定版本文件夹中更新。特定版本的元数据是正确的:

https://repo.woodenstake.se/content/repositories/snapshots/se/uniply/dfkka_2.10/1.2.7-SNAPSHOT/maven-metadata.xml

<metadata modelVersion="1.1.0">
<groupId>se.uniply</groupId>
<artifactId>dfkka_2.10</artifactId>
<version>1.2.7-SNAPSHOT</version>
<versioning>
<lastUpdated>20130524112854</lastUpdated>
</versioning>
</metadata>

https://repo.woodenstake.se/content/repositories/snapshots/se/uniply/dfkka_2.10/maven-metadata.xml

显示旧的时间戳:

<metadata modelVersion="1.1.0">
<groupId>se.uniply</groupId>
<artifactId>dfkka_2.10</artifactId>
<versioning>
<latest>1.2.7-SNAPSHOT</latest>
<release/>
<versions>
<version>1.2.7-SNAPSHOT</version>
</versions>
<lastUpdated>20130523200733</lastUpdated>
</versioning>
</metadata>

因此,工件解析器不会下载最新版本,只会使用本地目录中的缓存版本。为什么Nexus不更新版本?我错过了什么设置吗?

更多信息:

我正在使用带有发布插件的sbt 12.2(引擎盖下的常春藤)。

3 个答案:

答案 0 :(得分:2)

我也在SBT google小组中询问过这个问题: https://groups.google.com/forum/?fromgroups#!topic/simple-build-tool/ErA1ybeRXec

在做了一些研究之后

https://groups.google.com/forum/?fromgroups#!topic/simple-build-tool/okaoV3SDH24

似乎表明它的Ivy没有以使用Maven时预期的方式输出这些文件。一个解决方案是使用Aether-plugin for SBT“部署”Maven方式而不是“发布”。

https://github.com/arktekk/sbt-aether-deploy

使用这个,xml:s也通过SBT构建中的PUT来更新。

答案 1 :(得分:1)

Nexus实际上根本不维护这些文件。构建系统就是这样做的。如果您使用Maven,部署插件将负责处理它。

似乎与常春藤没有做到这一点。我建议按照@hedefalk的建议集成sbt-aether-deploy工具。

作为止损措施,您可以定期在存储库上运行重建元数据任务。

答案 2 :(得分:0)

其他答案与ivy和Maven快照发布有关:

总之,快照版本是常春藤不完全支持的Maven功能。