Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven在多个依赖项中具有相同的依赖项_Maven - Fatal编程技术网

Maven在多个依赖项中具有相同的依赖项

Maven在多个依赖项中具有相同的依赖项,maven,Maven,假设我有3个lib,使用Maven编译:A、B和C 假设我有一个项目: 依赖项C包含在A和B中 编译My project后,依赖项C将出现3次?还是只有一次 它们都使用相同版本的CMaven管理可传递依赖项的方式是,对于每个工件,项目只使用一个版本 如果您有不同的版本,则版本由Maven依赖项中介决定。在Java 9之前,您将只有一个版本,由Maven依赖项中介决定。Java 9+,如果这些依赖项是模块,则每个模块都可以使用它们列出的依赖项。您将只有一个C,因为您说它是同一版本。什么是?您可以添

假设我有3个lib,使用Maven编译:A、B和C

假设我有一个项目:

依赖项C包含在A和B中

编译
My project
后,依赖项
C
将出现3次?还是只有一次


它们都使用相同版本的
C

Maven管理可传递依赖项的方式是,对于每个工件,项目只使用一个版本


如果您有不同的版本,则版本由Maven依赖项中介决定。

在Java 9之前,您将只有一个版本,由Maven依赖项中介决定。Java 9+,如果这些依赖项是模块,则每个模块都可以使用它们列出的依赖项。

您将只有一个C,因为您说它是同一版本。

什么是?您可以添加为编译、提供等。它将管理工件在工件上的包含(或不包含)。您自己的项目将只包含一次(如果您正确配置了所有内容)。。。您在
我的项目
…@X-Pippes中定义的那一个,我在
pom
@昆仑中没有声明
,您的范围是什么?这是我的问题,它只会出现一次,完全无关。依赖项解析与JDK无关。如果您为
My project
创建了一个java模块,那么只有当您拥有不同版本的
Dependency C
时,这才不会真正改变任何事情,但这会导致编译失败……因为不允许在模块路径上拥有同一模块的不同版本。此外,您必须注意,java中的一个模块最终会深入到一个jar文件,而这个模块
我的项目
是一个jar文件…@khmarbaise当然这是一个jar文件,但运行时加载它的方式很重要。只有当jar文件正确地包含module-info.java或者它可能是一个多版本jar文件时,情况才会有所不同。。。