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
“我怎么能?”;联合国继承”;Maven依赖关系?_Maven_Dependency Management - Fatal编程技术网

“我怎么能?”;联合国继承”;Maven依赖关系?

“我怎么能?”;联合国继承”;Maven依赖关系?,maven,dependency-management,Maven,Dependency Management,我有一个大型的多模块项目。99%的模块依赖于某个第三方库(我们称之为a),因此对a的依赖关系记录在项目父POM中&因此由所有模块继承。在这99%的情况下,A是作为运行时环境的一部分提供的&因此依赖项相应地被标记为已提供 我今天遇到了一种情况,其中一个子模块(实际上是孙子,如果这很重要的话)不能依赖于a。如何从该模块的依赖项列表中删除a 我已经尝试了combine.self=“override”,但是元素中显然不允许使用该构造。使用依赖项管理并添加不需要的工件的依赖项排除 这对于从我的spring

我有一个大型的多模块项目。99%的模块依赖于某个第三方库(我们称之为a),因此对a的依赖关系记录在项目父POM中&因此由所有模块继承。在这99%的情况下,A是作为运行时环境的一部分提供的&因此依赖项相应地被标记为已提供

我今天遇到了一种情况,其中一个子模块(实际上是孙子,如果这很重要的话)不能依赖于a。如何从该模块的依赖项列表中删除a


我已经尝试了
combine.self=“override”
,但是
元素中显然不允许使用该构造。

使用
依赖项管理
并添加不需要的工件的依赖项排除

这对于从我的spring依赖项中排除
公共日志记录
非常有用:

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring-framework.version}</version>
        <exclusions>
          <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
          </exclusion>
        </exclusions>
      </dependency>

    </dependencies>
  </dependencyManagement>

org.springframework
弹簧芯
${spring framework.version}
公用记录
公用记录

我认为没有办法满足您的要求。我认为您必须停止继承(从父模块中删除),并开始在所有子模块中明确声明它。@BenjaminLinus,我也这么认为。这是一个可怕的“修复”,但不会发生:我不打算在300多个模块中单独声明依赖项来解决这个问题。我听说了,我也不想这样做。另一种可能是从1%的子模块中删除“”声明,然后专门声明从父模块继承的所有内容。仍然是一个糟糕的修复,但可能没有触摸300多个模块那么糟糕。只是想一想,我不是问如何排除可传递依赖项:我是问如何防止单个后代继承由祖先直接声明的依赖项。