我有几个库,已使用以下方法手动部署到我的 Nexus 存储库:
mvn deploy:deploy-file -Durl=[url] -DrepositoryId=[repoId] -Dfile=[filePath] -DgroupId=[gId] -DartifactId=[aid] -Dversion=[v] -Dpackaging=jar
我这样做是因为它们是旧版 jar,而且其中很大一部分我已经自动化了该过程。
我遇到的问题是打包 WAR。依赖关系很好,但是当 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
是否可以在打包war时消除时间戳?
最佳答案
您可能需要问自己为什么需要消除时间戳。
如果您只想下载最新的 SNAPSHOT 版本,Nexus 提供 REST API要下载最新的 SNAPSHOT Artifact ,只需直接使用您的快照版本作为版本参数,例如 1.0-SNAPSHOT
。例如
http://<your-nexus>/service/local/artifact/maven/redirect?r=<your-repo>&g=<the-group>&a=<the-id>&v=1.0-SNAPSHOT
从 API 文档来看,版本参数可以支持 LATEST
、RELEASE
和 SNAPSHOT
版本。
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?
关于java - 带有时间戳的Maven WAR打包库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436753/