java - 带有时间戳的Maven WAR打包库

标签 java eclipse maven nexus sonatype

我有几个库,已使用以下方法手动部署到我的 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 文档来看,版本参数可以支持 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?

关于java - 带有时间戳的Maven WAR打包库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436753/

相关文章:

eclipse - jface tableviewer 单元格跨度

java - 如何使用分类器访问 jar?

java - 如何遍历 Java 列表并检查它是否等于多个字符串?

java - 缓冲读取器和优先级队列一起工作?

java - Java Web项目仅在Eclipse中运行

maven - 仅当运行插件时依赖项才位于类路径中

java - Maven 更新具有不同父级的多模块项目

java - 如何 Autowiring 动态类

java - @Async 和 @Transactional 的 Spring 启动问题

java - Android - 测试运行失败 - NullPointerException