【发布时间】: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