繁体   English   中英

如何让Maven解决本地依赖的传递依赖

[英]How to let maven resolve transitive dependency for local dependency

我们有一个项目A,该项目A依赖于项目B,而项目B依赖于图书馆C。A和B是本地项目,而C是Maven Central Repo中的公共图书馆。

A的pom.xml:

<name>ProjA/name>
...
<dependency>
  <groupId>com.abc</groupId>
  <artifactId>ProjB</artifactId>
  <version>1.0</version>
</dependency>

B的pom.xml:

<name>ProjB/name>
...
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>C</artifactId>
    <version>2.23.2</version>
</dependency>

在A中运行mvn dependency:tree -Dverbose时,它不会解析B的依赖关系,并且在A的Maven依赖关系中也不会显示B中使用的此类依赖关系。 这对于编译很好,但是由于NoClassDefFound错误而在运行时将失败。

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ProjA 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ ProjA ---
[INFO] com.abc.projA:jar:1.0
[INFO] +- com.abc.projB:jar:1.0:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.326 s
[INFO] Finished at: 2016-09-15T16:29:49-07:00
[INFO] Final Memory: 13M/309M
[INFO] ------------------------------------------------------------------------

有什么方法可以让Maven解决像B这样的本地依赖的传递依赖吗?

我认为这里的问题是本地.m2中不存在B

您需要为B运行mvn install ,以将软件包安装到.m2 ,该文件可由A在本地获取。

然后在A中运行mvn dependency:tree -Dverbose不会导致问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM