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 无法解决依赖关系的主要内容,如果未能解决你的问题,请参考以下文章