Maven : Could not resolve dependencies...

来源:互联网 发布:linux ssh命令 端口 编辑:程序博客网 时间:2024/04/29 19:22
背景:

     一个项目 P ,下面有2个module :  A,  B.

    其中A 是jar,B是war。  B依赖A。

   如果先cd 至A目录,运行 mvn install ,将 A 安装到本地仓库,

   再 cd 至 B目录,运行 mvn compile

  出现 Could not resolve dependencies... 错误信息。


初步分析:

   如果 cd 至 A 目录下, 运行 mvn install 成功;

   此时仓库中应该已经已有 A 的 jar包,应该不会报错,让人误以为 maven 无法从本地仓库查找 依赖。


原因:

出现这个异常,已经遇到过很多种情况,比如:网络连接失败,下载 jar 包缺损造成解析异常,依赖名称未写对,repository 路径错误等等。。。

这里介绍一个容易忽略的情况,就是:

在进行多模块开发时,在子模块中进行的compile / package/ install 等操作,如果依赖了其他子模块,

需要先在 Super pom 下先进行一次完整的 install。


解决方法:

   cd 至 在 P 项目下,运行mvn install。

  然后再cd 至 B 目录,mvn compile 即可成功。

 备注: 如果 P 目录也是子模块,上层还有父模块,需要一直cd 至 项目的根目录,然后运行 mvn install。


原理:

    1.maven 先从网络上查找 依赖;

    2.maven根据当前子模块,再尝试根据父模块的 install 到本地仓库的 pom 中递归查找依赖。



原创粉丝点击