gpt4 book ai didi

java - 如何让maven解决本地依赖的传递依赖

转载 作者:行者123 更新时间:2023-11-30 02:48:12 24 4
gpt4 key购买 nike

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

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 的依赖项,并且 B 中使用的此类依赖项也不会显示在 A 的 Maven 依赖项中。这对于编译来说很好,但在运行时会因为 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这样的本地依赖的传递依赖?

最佳答案

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

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

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

关于java - 如何让maven解决本地依赖的传递依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com