【问题标题】:Technique to fix Maven Dependency when using Artifactory使用 Artifactory 时修复 Maven 依赖项的技术
【发布时间】:2015-12-08 23:49:11
【问题描述】:

所以我得到一个错误 Could not find artifact javax.xml.xquery:xqj-api:jar:1.0 in remote-repos 这告诉我我在 Artifactory 中的设置有问题。

问题是东西被缓存了,所以即使我已经解决了,我也不一定知道。

我是否应该为 Maven 创建一个替代的 settings.xml 以绕过所有镜像和一个非常小的 pom.xml,它只引用我感兴趣的缺失依赖项和引用我认为我的依赖项可能隐藏的 repo 的存储库语句?

或者,收集需要添加到存储库管理器的存储库详细信息的最佳简约方法是什么?

【问题讨论】:

  • 所以你否决了这个问题。为什么?如果您不提供反馈,我该如何改进我的问题或了解我做错了什么。

标签: maven dependencies repository artifactory


【解决方案1】:

您可以采取以下方法:

  1. search 用于 Artifactory 中所需的工件。如果找到它,请确保您正在从包含它的存储库中解析工件。此处的最佳做法是使用 virtual repository 进行解析,该virtual repository 聚合了您需要的所有存储库。
  2. 如果您没有在 Artifactory 中找到工件,请尝试使用 remote search。远程搜索将在 Bintray JCenter 中查找工件。
  3. 如果您没有在 JCenter 中找到工件,请尝试使用 http://mvnrepository.com/ 等服务。如果您设法在存储库中找到工件,请将其作为新的 remote repository 添加到 Artifactory(假设您信任此存储库并希望使用它)。您可以使用include/exclude 模式来确保仅从该存储库解析特定的工件。
    另一种选择是从远程 URL 下载您需要的特定工件并将它们部署到本地存储库中,例如 ext-lib-releases。
    同样,请确保无论您选择什么选项,您的构建都能够解决工件。
  4. 如果您没有设法在任何公共 Maven 存储库中找到工件,请尝试使用 Google 搜索工件并将所需文件部署到 Artifactory,如上一项所述。仅从您信任的网站下载并验证您下载的是合法/有效文件。

【讨论】:

  • 是的,#4 存在风险因素。
  • 感谢您的回答,它引导我找到以下解决方案。因此,在 Maven 中,您可以拥有多个配置文件。我设置了一个直接配置文件,其中包含按顺序排列的各种存储库
【解决方案2】:

首先要感谢@drorb,感谢您的回答,它引导我找到以下解决我的问题的方法。

所以在 Maven 中你可以有多个 Profile。我定义了两个配置文件“direct”和“artifactory”,并将“direct”设置为我的 ActiveProfile。

使用直接配置文件,即实际的存储库 URL,我添加了通过搜索找到的存储库,直到构建成功。

然后我进入 Artifactory 并将所有发现的 repo 输入到其 Remote Repositories 列表中,然后编辑“remote-repos”虚拟存储库并将其设置为我刚刚添加的 Remote Repositories 列表。

最后,我将 ~/.m2/settings.xml 切换到“artifactory”配置文件并重建了我的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 2023-01-21
    • 1970-01-01
    • 2020-04-29
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多