更改 maven pom.xml 中传递依赖项的版本

I'a*_*man 3 java dependencies dependency-management pom.xml maven

我一直在尝试覆盖我的一个项目中的传递依赖版本。我在 github 上找到了以下示例项目进行实验(https://github.com/Richou/swagger-codegen-maven-plugin)。该项目的父 pom 包含 swagger-codegen 的依赖项。Swagger-codegen 又具有一个名为 slf4j-ext 的依赖项,其版本为 1.6.3。我想从父 pom 升级/覆盖 slf4j-ext 的版本到 1.7.30。我尝试在父 pom 的属性标记内添加所需的 slf4j-version,但当我检查 Maven 依赖关系树时它不起作用。正确的方法是什么?

        <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-codegen</artifactId>
        <version>2.1.2</version>
    </dependency>
</dependencies>

<properties>
    <slf4j-version>1.7.30</slf4j-version>
    <java.version>1.7</java.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

Zin*_*inc 6

您可以在父 pom.xml 的 dependencyManagement 部分中添加您想要的版本的 slf4j-ext。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-ext</artifactId>
      <version>${slf4j-version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

  • 因为您在 pom 中定义的属性不适用于您的依赖项,它仅适用于您的 pom 和子模块。换句话说,不可能覆盖依赖项中定义的属性。 (2认同)