【问题标题】:How to get the latest jar file in Sonatype Nexus when trying to do build in Maven inside of Jenkins?尝试在 Jenkins 内部构建 Maven 时,如何在 Sonatype Nexus 中获取最新的 jar 文件?
【发布时间】:2015-10-04 12:25:08
【问题描述】:

全部

其实有两个问题。

  1. 我现在使用 Sonatype Nexus 2.11.3-01 作为我的私有存储库服务器。但是,使用管理员登录后,我发现默认快照存储库中缺少 Artifact Upload 选项卡。我不知道为什么这个标签在 Releases 或 3rd 方。这是一个缺陷还是我在 Nexus 中进行设置时遗漏了什么?这将在尝试将 jar 文件部署到 Snapshots 存储库时导致 401 错误——返回代码为:401,ReasonPhrase:未授权。 ->(我检查了我的凭据设置,它们都是正确的。)

  2. 我有一个自定义的 jar 文件,我想将它放入 Snapshots 存储库。但是当使用 Maven 将快照 jar 上传到 Nexus 时,它会在文件名中添加一个时间戳。根据我在 Maven 3 中的搜索,它放弃了删除快照中时间戳的支持。那么是否可以从 POM 文件中检索 Nexus 中的最新 jar?

谢谢!

【问题讨论】:

  • 你能显示完整的 settings.xml 文件吗(当然没有密码 ;-))

标签: jenkins maven-3 nexus


【解决方案1】:

SNAPSHOT 存储库中的Upload 选项卡通常没有任何意义,因为 SNAPSHOT 存储库是为 SNAPSHOT 而设计的,而不是用于通常上传一次并在较长时间内使用的第 3 方工件。 Snapshot 存储库将被 Maven/Gradle 等用于在开发过程中上传 SNAPSHOT。 如果您有一个我认为不会更改的自定义 JAR,通常应该将其放入 3rdParty 存储库而不是 SNAPSHOT。 SNAPSHOT 存储库是一个较短时间段的存储,至少应在创建您的工件(Maven 中的项目)的发布后进行清理。

如果您将 Name-1.0-SNAPSHOT 之类的内容放入 Nexus SNAPSHOT 存储库,则工件内部命名为 Name-1.0-20150701-203434-1.jar,这是由 Nexus 而不是 Maven 制作的。

如果您想从 nexus 存储库中获取最新的 SNAPSHOT 状态,您必须在 maven 命令行上使用 mvn -U ...(如果您想更改默认行为,您可以通过 configuring in your settings.xml 进行更改)。

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 2018-03-08
    • 1970-01-01
    • 2014-11-25
    • 2012-05-19
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多