【问题标题】:Can I update Nexus Maven "LATEST" metadata without a scheduled task?我可以在没有计划任务的情况下更新 Nexus Maven“最新”元数据吗?
【发布时间】:2015-06-15 10:11:03
【问题描述】:

我正在运行 Nexus,并且我有一个快照 Maven 存储库。当我将工件发布到该存储库时,我还运行“重建 Maven 元数据文件”类型的任务,该任务运行大约 5 分钟并更新“最新”以实际指向最新的工件。我可以以其他方式更新最新的参考吗?我用 Gradle 发布。 Gradle 可以只更新特定组的元数据吗?

谢谢

【问题讨论】:

  • 我不完全理解你的问题。 Nexus 会在您部署时自动更新工件元数据(也许 gradle 调用 publish 来部署?)。这是任何 maven 兼容存储库的基本功能。我不确定您是否也表示与此问题相关的内容:stackoverflow.com/questions/10370422/…
  • 是的,我们将 gradle publish 发布到 Nexus。我所有的经验似乎都告诉我 LATEST 没有得到更新。我现在正在做一个非常仔细的测试,看看我是不是疯了..
  • Maven 有一个设置来设置检查快照的频率(默认是每天一次)。对于我可以从 Gradle 的文档中看到的内容,gradle 默认每 10 分钟检查一次(cacheDynamicVersionsFor 在gradle.org/docs/current/javadoc/org/gradle/api/artifacts/…)。为什么不尝试将其设置为 1 或 2 分钟? (我们将此设置为使用 Maven 工作 2 分钟)
  • 是的,我很肯定它没有。我禁用了元数据更新作业并发布了具有更高构建器编号的构建,并且 LATEST 指向任务运行时的最后一个最高构建。它不会自动更新最新的元数据。
  • 我刚刚意识到我们在谈论不同的事情......抱歉把水弄混了! (我提到的与 SNAPSHOTS 有关,但看起来您每次提交/构建都会创建一个新版本)

标签: maven nexus


【解决方案1】:

maven 元数据文件不是由 Nexus 管理,而是由客户端工具管理。默认情况下是 Maven,它会在部署过程中下载元数据文件,使用新的快照数据对其进行更新,然后再次上传。

Gradle 可能无法正确执行此操作,这就是您必须使用使用 Nexus 计划任务的解决方法的原因。我不认为 Gradle 有任何进一步的工具可以更好地修复它。我能想到你唯一能做的就是自动从 Gradle 启动计划任务。但是你仍然会遇到时间问题。

最好是针对 Gradle 提交一个错误并修复它。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多