首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让maven解析局部依赖的传递依赖

如何让maven解析局部依赖的传递依赖
EN

Stack Overflow用户
提问于 2016-09-16 08:00:17
回答 1查看 2.6K关注 0票数 3

我们有一个项目A,它依赖于项目B,它依赖于库C。A和B是本地项目,而C是maven中央存储库中的公共库。

A的pom.xml:

代码语言:javascript
复制
<name>ProjA/name>
...
<dependency>
  <groupId>com.abc</groupId>
  <artifactId>ProjB</artifactId>
  <version>1.0</version>
</dependency>

B的pom.xml:

代码语言:javascript
复制
<name>ProjB/name>
...
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>C</artifactId>
    <version>2.23.2</version>
</dependency>

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

代码语言:javascript
复制
[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这样的本地依赖的传递依赖呢?

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 12:07:54

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

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

那么在A中运行mvn dependency:tree -Dverbose就不会有问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39522009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档