如何使用gradle排除传递依赖关系并将其替换为另一个依赖关系

时间:2015-08-26 12:03:53

标签: java gradle configuration

我的情况与this类似 (JodaTime和Java版本之间的错误大于1.8u60)。

所以我需要的是:

  1. 升级到JodaTime版本2.8.1或更高版本。
  2. 问题是:JodaTime是我项目中的传递依赖。
  3. 其中使用的构建自动化工具是gradle。需要帮助来处理它。

    buildscript:

    buildscript {
        ext {
            springBootVersion = '1.2.4.RELEASE'
        }
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
            classpath("io.spring.gradle:dependency-management-plugin:0.5.1.RELEASE")
            classpath("org.flywaydb:flyway-gradle-plugin:3.2.1")
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'eclipse'
    apply plugin: 'spring-boot' 
    apply plugin: 'io.spring.dependency-management' 
    apply plugin: 'org.flywaydb.flyway'
    
    jar {
        baseName = 'xxxx'
        version = 'alpha'
    }
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
    
        compile("org.springframework.boot:spring-boot-starter-data-jpa:1.2.4.RELEASE")
        compile("org.springframework.boot:spring-boot-starter-aop:1.2.4.RELEASE")
        compile("org.springframework.boot:spring-boot-starter-web:1.2.4.RELEASE")
        compile("org.springframework.boot:spring-boot-starter-freemarker:1.2.4.RELEASE")
        compile("com.amazonaws:aws-java-sdk:1.10.2")
        compile("com.stripe:stripe-java:1.33.0")
        compile("org.flywaydb:flyway-core:3.2.1")
        compile("com.jolbox:bonecp:0.8.0.RELEASE")
    
        runtime("org.postgresql:postgresql:9.4-1201-jdbc41")
    
        testCompile("org.springframework.boot:spring-boot-starter-test:1.2.4.RELEASE")
    }
    
    dependencyManagement {
        imports { 
            mavenBom "org.springframework.cloud:spring-cloud-starter-parent:1.0.2.RELEASE" 
        }
    }
    
    eclipse {
        classpath {
             containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
             containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
        }
    }
    
    task wrapper(type: Wrapper) {
        gradleVersion = '2.3'
    }
    

2 个答案:

答案 0 :(得分:3)

您需要在dependencies块中更改以下代码:

compile("com.amazonaws:aws-java-sdk:1.10.2") {
     exclude group: 'joda-time', module: 'joda-time'
}
compile("joda-time:joda-time:2.8.1")

答案 1 :(得分:0)

将传递性假,并在您的依赖项之间设置您需要的包,而不是传递下载中的包。