具有时间戳的Maven WAR打包库

时间:2014-08-21 22:10:56

标签: java eclipse maven nexus sonatype

我有几个库,我使用以下方法手动部署到我的Nexus存储库:

mvn deploy:deploy-file -Durl=[url] -DrepositoryId=[repoId] -Dfile=[filePath] -DgroupId=[gId] -DartifactId=[aid] -Dversion=[v] -Dpackaging=jar

我之所以这样做,是因为它们是传统的罐子,而且我已经自动完成了大量的罐子。

我遇到的问题是打包WAR。依赖关系很好,但是当生成战争时,它们会在末尾附加版本+时间戳。我有几个其他项目似乎不是这种情况 - 即,在给定服务器的多个包装和部署之后,[目录]的lib目录包含:

[jar].[<version>-timestamp1].jar
[jar].[<version>-timestamp2].jar
[jar].[<version>-timestamp3].jar
[jar].[<version>-SNAPSHOT].jar     <== this entry alone would be ideal

另外,我没有使用任何特定的插件只是调用:

clean package

打包战争时是否可以消除时间戳?

1 个答案:

答案 0 :(得分:2)

您可能需要问自己为什么需要消除时间戳。

如果您只想下载最新的SNAPSHOT版本,Nexus会提供REST API直接使用您的快照版本作为版本参数下载最新的SNAPSHOT工件,例如1.0-SNAPSHOT 。 e.g。

http://<your-nexus>/service/local/artifact/maven/redirect?r=<your-repo>&g=<the-group>&a=<the-id>&v=1.0-SNAPSHOT

从API文档中,version参数可以支持LATESTRELEASESNAPSHOT版本。

Version of the artifact (Required) Supports resolving of "LATEST", "RELEASE" and snapshot versions ("1.0-SNAPSHOT") too.

此外,通过时间戳,每个SNAPSHOT版本都有它的唯一版本,这使您有机会下载指定的SNAPSHOT版本,例如v=1.0-20140822.145007-2

如果您想限制快照数量,可以查看以下内容:How to limit number of deployed snapshots artifacts in Nexus?