检索Maven快照的时间戳
问题描述:
我使用的是Maven 3.0.5 & Nexus。检索Maven快照的时间戳
我在Nexus存储库中有SNAPSHOT工件。这些按预期工作。
在的Nexus的工件均显示出来类似如下:
的artifactId-1.1.0- 20130806.104205-5 .pom
这是好的。 SNAPSHOT会作为时间戳进行扩展。
当我执行mvn构建时,会按预期方式检索最新的快照。一切都很好。
事情是,我希望能够检索已解决的工件的时间戳。如果我执行“mvn -X”选项,则在调试日志中显示的所有内容均为ArtifactId-1.1.0-SNAPSHOT,而不是时间戳。
我似乎无法显示哪些时间戳已被检索。我可以在一起看看.m2中的一些脚本,但我想知道是否有一种干净的方式显示正在使用的SNAPSHOT的时间戳?
答
也许你可以使用的dependencySet:
<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping>
我希望它能帮助。
答
尝试使用Nexus REST resolve API。
下面的例子:
http://myrepo:8081/nexus/service/local/artifact/maven/resolve?r=central&g=log4j&a=log4j&v=1.2.6
回报:
<artifact-resolution>
<data>
<presentLocally>true</presentLocally>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.6</version>
<extension>jar</extension>
<snapshot>false</snapshot>
<snapshotBuildNumber>0</snapshotBuildNumber>
<snapshotTimeStamp>0</snapshotTimeStamp>
<sha1>4bf32b10f459a4ecd4df234ae2ccb32b9d9ba9b7</sha1>
<repositoryPath>/log4j/log4j/1.2.6/log4j-1.2.6.jar</repositoryPath>
</data>
</artifact-resolution>
对于快照版本将返回时间戳。
请注意,这将检索部署到Nexus的最新版本。这会造成两个并发部署之间的竞争条件风险。 – jwa
@jwa这比部署不是专用的更糟糕。重复部署很少或永远不会产生相同的结果。这是使用快照构建运行的风险。我从不推荐他们进行持续交付项目。当你不关心这些事情时,Snaphots仅适用于共享开发。 –