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

Java 更改maven pom.xml中可传递依赖项的版本,java,maven,dependencies,pom.xml,dependency-management,Java,Maven,Dependencies,Pom.xml,Dependency Management,我一直试图在我的一个项目中覆盖一个可传递的依赖项版本。我在github上找到了以下示例项目进行实验()。此项目的父pom包含对swagger codegen的依赖项。而Swagger codegen又有一个名为slf4j ext的依赖项,其版本为1.6.3。我想将slf4j ext的版本从父pom升级/覆盖到1.7.30。我尝试在父pom的属性标记中添加所需的slf4j版本,但在检查maven依赖关系树时,它没有起作用。正确的方法是什么 <dependency>

我一直试图在我的一个项目中覆盖一个可传递的依赖项版本。我在github上找到了以下示例项目进行实验()。此项目的父pom包含对swagger codegen的依赖项。而Swagger codegen又有一个名为slf4j ext的依赖项,其版本为1.6.3。我想将slf4j ext的版本从父pom升级/覆盖到1.7.30。我尝试在父pom的属性标记中添加所需的slf4j版本,但在检查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>

昂首阔步
昂首阔步
2.1.2
1.7.30
1.7

您可以在父pom的dependencyManagement部分添加具有所需版本的slf4j ext


org.slf4j
slf4j分机
${slf4j版本}

您所说的“有时可能还不够”是什么意思<代码>覆盖可传递依赖项。没错,我编辑了答案以删除此部分。可以,但是谁能告诉我为什么在父pom中重写内部版本不起作用?我想更好地了解pom的工作原理。因为您在pom中定义的属性不适用于您的依赖项,它只适用于您的pom和子模块。换句话说,不可能重写依赖项中定义的属性。是否有任何原因导致属性重写不起作用?