【问题标题】:Maven WAR packaging libraries with timestamp带有时间戳的 Maven WAR 打包库
【发布时间】:2014-08-21 22:10:56
【问题描述】:

我有几个库已手动部署到我的 Nexus 存储库,使用:

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

我这样做是因为它们是遗留的 jars,而且我已经自动化了其中的大量 jars。

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

[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的时候可以去掉时间戳吗?

【问题讨论】:

    标签: java eclipse maven nexus sonatype


    【解决方案1】:

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

    如果你只是想下载最新的 SNAPSHOT 版本,Nexus 提供REST API 可以直接使用你的快照版本作为版本参数来下载最新的 SNAPSHOT 工件,例如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 文档看,version 参数可以支持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?

    【讨论】:

    • 随着时间的推移,您将如何管理 WEB-INF/lib?也许我正在尝试解决同时支持开发和生产环境的问题,但它们应该有所不同......
    • 您可以打开其他有关管理 WEB-INF/lib 的问题,了解更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多