Maven 无法解决依赖关系

Posted

技术标签:

【中文标题】Maven 无法解决依赖关系【英文标题】:Maven Could not resolve dependencies 【发布时间】:2013-07-22 07:24:31 【问题描述】:

现在,我有一个在我的 Windows 计算机上运行良好的项目。但是我把它复制到linux电脑后,编译时报如下错误:

未能在项目警报上执行目标:无法解析项目 com.cloud.ras:alert 的依赖项。

com.external:commons-logging:jar:1.0.4.1 的 POM 丢失,没有可用的依赖信息 com.external:freemarker:jar:2.3.4 的 POM 丢失,没有可用的依赖信息 com.external:log4j:jar:1.2.14 的 POM 丢失,没有可用的依赖信息 com.soa.lib:eBoxServiceCommon:jar:2.5.3 的 POM 丢失,没有可用的依赖信息

但我已将这些 jar 复制到 maven 存储库。谁能帮帮我?

【问题讨论】:

如果你(似乎)知道commons-logging等外部依赖的版本,为什么不直接依赖它们呢?现在看来您介绍了com.external 的假groupId,还是我看错了? “复制......到......存储库”是什么意思?您是否有公司存储库,它是在您的 POM 中还是在 Linux 框的settings.xml 中配置的?或者您是否参考了您的本地存储库,并非不可能,但很麻烦? 【参考方案1】:

您首先不应该复制 JAR。这是 Maven 为您解决依赖关系的工作。

如果您解释需要使用自己的groupId 的原因会很有帮助,例如com.external 首先是 commons-logging 来自 Apache,但您使用 com.external 作为其 groupId

如果你真的坚持要使用自己的groupId,至少下载 JAR 并使用 Maven 安装它。看这里: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html.

【讨论】:

想要为以某种意义击中原始海报而投票:) 想要为这并没有真正回答很多问题而投票:) 好吧,我已经解决了这个问题。问题是在我的 windows 计算机上编译项目时,它使用了一些已下载到我本地存储库的存储库。如果我清理本地存储库并再次编译项目,它也会失败。但是,当我在我的 linux 计算机上编译它时,由于本地存储库中没有相关的存储库,所以它失败了。最后,根本原因是pom文件不正确。

以上是关于Maven 无法解决依赖关系的主要内容,如果未能解决你的问题,请参考以下文章

Maven 无法使用 gitlab 解决依赖关系

Maven 无法使用 Central repo 解决依赖关系

Apache IVY 无法解析 MAVEN 项目的依赖关系

Maven 无法解析项目的依赖关系

Maven 无法解析同一多模块项目中模块的依赖关系

android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递