Gradle:buildscript的解决策略

时间:2016-01-18 19:07:48

标签: gradle

是否可以为构建脚本设置分辨率策略,以便可以集中设置gradle插件的版本?例如:

的build.gradle:

buildscript {
    dependencies {
        classpath 'org.springframework.boot:spring-boot-gradle-plugin'
    }
}

apply from:   'common.gradle'
apply plugin: 'spring-boot'

dependencies {
    ...
}

common.gradle:

allprojects { project ->
    buildscript {
        repositories {
            jcenter()
        }
    }

    configurations.all {
        resolutionStrategy {
            eachDependency { details ->
                if (details.requested.group == 'org.springframework.boot' and details.requested.name == 'spring-boot-gradle-plugin')
                    details.useVersion '1.3.1.RELEASE'
            }
        }
    }
}

我已经尝试了上述100种不同的变种,所有这些都导致错误,说春季启动gradle插件版本无法解决(仍然是空的)

1 个答案:

答案 0 :(得分:1)

集中设置插件版本的方法略有不同:使用init.gradle

在init.gradle中:

allprojects {
    ext.springBootGradlePluginVersion = '1.3.1.RELEASE'
    println "spring-boot-gradle-plugin version set in init.gradle to $springBootGradlePluginVersion"
}

然后在你的个人项目中:

buildscript {
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootGradlePluginVersion"
    }
}

apply from:   'common.gradle'
apply plugin: 'spring-boot'

您可以在主文件夹中使用全局init.gradle,也可以在使用-I命令行选项运行gradle时为每个项目调用它。