Java Maven传递依赖问题
我有以下设置:Java Maven传递依赖问题,java,maven-2,jakarta-ee,Java,Maven 2,Jakarta Ee,我有以下设置: Master:具有模块A和B A:声明依赖于B,Master作为其父级 B:Master作为其父级 所以基本上Master有一个父pom,它构建a和B,其中a依赖于B 我的问题是我想把所有的第三方依赖项放在B中(比如JUnit等)。但是当我这样做时,A确实可以访问B声明的依赖项。为什么会这样?我认为maven处理可传递依赖项 以下是我的POM片段,以防万一: 大师: <modules> <module>../A</modu
:具有模块Master
和A
B
:声明依赖于A
,B
作为其父级Master
:B
作为其父级Master
Master
有一个父pom,它构建a
和B
,其中a
依赖于B
我的问题是我想把所有的第三方依赖项放在B
中(比如JUnit等)。但是当我这样做时,A
确实可以访问B
声明的依赖项。为什么会这样?我认为maven处理可传递依赖项
以下是我的POM片段,以防万一:
大师:
<modules>
<module>../A</module>
<module>../B</module>
</modules>
../A
../B
A:
com.project
主人
1.
../Master/pom.xml
...
...
B
...
B:
com.project
主人
1.
../Master/pom.xml
...
...
朱尼特
...
为什么
A
不能访问JUnit 如果项目B中的JUnit依赖项具有范围“test”,那么我认为它在项目a中不会作为可传递依赖项可见。请参见中的表
<parent>
<groupId>com.project</groupId>
<artifactId>Master</artifactId>
<version>1</version>
<relativePath>../Master/pom.xml</relativePath>
</parent>
...
<dependency>
...
<artifactId>B</artifactId>
...
</dependency>
<parent>
<groupId>com.project</groupId>
<artifactId>Master</artifactId>
<version>1</version>
<relativePath>../Master/pom.xml</relativePath>
</parent>
...
<dependency>
...
<artifactId>JUnit</artifactId>
...
</dependency>