【问题标题】:Ignore POM in 3rd party JAR忽略 3rd 方 JAR 中的 POM
【发布时间】:2013-10-28 17:17:28
【问题描述】:

我已将第 3 方 JAR 文件上传到我的 Artifactory 存储库。此 JAR 文件包含一个 POM,但该 pom 仅在 3rd-parties 构建环境中有效。

当我尝试构建使用此 JAR 的项目时,我收到错误,因为它正在寻找我们无权访问的父项目。

我从this post 了解到,这是因为正在从 3rd 方 Jar 中读取 POM。

有没有办法编辑 我们的 项目的 POM 来告诉 Maven 忽略这个第 3 方 Jar 的 pom?

(作为一种解决方法,我可以从 Jar 中删除 POM - 这解决了问题,但我不想记住在此第 3 方组件的每个版本上都这样做)。

还请注意,我对 Maven 很陌生,所以请使用简短的文字和长篇的解释 ;-)

【问题讨论】:

  • the mentioned post 的第一个示例所示,当您在命令行上提供详细信息时,它是否仍会提取 JAR 中的 POM?
  • 您可以在依赖项中使用范围属性并将其设置为提供。该属性使得打包时可以省略jar,需要手动处理。
  • @AbhijithNagarajan 我认为这对我没有帮助 - 我正在使用该 JAR 文件中的类,因此如果 Maven 无法获得它,我的代码将无法编译! (某些第 3 方 JAR 实际上设置为提供,因为我们知道它们将存在于目标系统中 - 不幸的是,它无助于解决问题中的问题)
  • @SanderVerhagen 但是我必须手动将 JAR 提供给任何需要它的开发人员/构建系统,这首先违背了使用 Maven 的主要目的!我希望 Maven 能够从 Artifactory 获取它 - 理想情况下,除了我们应用程序的 POM 之外,无需编辑任何内容。
  • 我不清楚这个神器在你的控制范围内有多少。如果是,请定义一个非“秘密”的父 POM。

标签: maven m2eclipse artifactory


【解决方案1】:

修复它的最佳方法是将父 pom 部署到 Artifactory。这就是 Maven 的工作原理。

【讨论】:

  • 对不起,如果我的问题不清楚,但我们无权访问父 POM。它由第 3 方内部使用,并为第 3 方专有。
  • 只做一个 - 你知道 GAV。
猜你喜欢
  • 2019-07-09
  • 2017-08-08
  • 2021-01-30
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多