gpt4 book ai didi

java - 为什么我的嵌套 Maven 依赖项在编译时没有显示出来

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:32 26 4
gpt4 key购买 nike

我有一个名为 my-library 的库,我将其与 Maven 打包并存储在私有(private) Nexus 存储库中。它编译并正确上传到我的存储库,并在其 pom.xml 文件中指定了以下依赖项:

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.13</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

我在另一个项目 my-child-project 中包含了这个依赖项,使用以下 pom.xml block :

<repositories>
<repository>
<id>MyRepo</id>
<name>My Maven Repository</name>
<url>http://localhost:8081/nexus/repo</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.my.group</groupId>
<artifactId>my-library</artifactId>
<scope>compile</scope>
<version>1.0.0</version>
</dependency>
</dependencies>

当我在 my-child-project 中运行 mvn clean install 时,maven 似乎能够找到并下载 my-library 但不是对 com.google.protobuf 的嵌套依赖,除非我将它显式包含在 pom.xml我的 child 项目。我可以确认 Maven 在运行 mvn dependency:tree 时可以看到我的依赖项,但看不到嵌套的依赖项:

...
[INFO] +- org.springframework.data:spring-data-redis:jar:1.7.1.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-keyvalue:jar:1.1.1.RELEASE:compile
[INFO] | \- org.springframework:spring-oxm:jar:4.2.5.RELEASE:compile
[INFO] +- redis.clients:jedis:jar:2.8.1:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] +- com.my.group:my-library:jar:1.0.0:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.4.4:compile
...

这是嵌套库依赖的工作方式吗?我认为其他依赖项中的嵌套依赖项会由 Maven 在 compile 范围内自动解析和下载。我希望只列出 my-library 中的嵌套依赖项,而不是 my-child-project 中的嵌套依赖项,但是好像不行。

最佳答案

首先,父pom.xml 应该在dependencies 标签之外添加dependencyManagement 标签。这只是为了在一个地方管理模块依赖关系,而不是实际将它们导入到您的项目中。

您仍然必须在子模块的 pom.xml 中声明它。 (但是你可以省略版本标签,因为它将从父 pom 继承)

关于java - 为什么我的嵌套 Maven 依赖项在编译时没有显示出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40351486/

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