【问题标题】:Maven dependency exclusion from transitive dependency of spring-context从spring-context的传递依赖中排除Maven依赖
【发布时间】:2016-04-20 11:47:44
【问题描述】:

我想从spring-core 中排除common-logging,但spring-corespring-context 的传递依赖项。我以另一种方式做到了,但在我看来,还有更合适的方式。这是什么???

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

【问题讨论】:

标签: java spring maven maven-2


【解决方案1】:

你可以排除传递依赖,见Introduction to the Dependency Mechanism

  • 排除的依赖项 - 如果项目 X 依赖于项目 Y,项目 Y 依赖于项目 Z,则项目 X 的​​所有者可以使用“排除”元素明确排除项目 Z 作为依赖项。

例子:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

【讨论】:

  • 问题是commons-logging不是可选的依赖;这怎么能排除? (如果它是在其他地方提供的?)
  • @William Callahan:您必须替换它,否则您必须知道,您永远不会使用依赖于已删除依赖项的功能。
猜你喜欢
  • 2018-07-06
  • 2019-10-29
  • 2021-10-24
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多