Gradle。将参数传递给依赖的项目构建脚本

Gradle. pass parameters to dependent project build script

我有项目("backend")配置:

dependencies {
    compile project(':model') //I would like to pass some params into this being build.
    ...

和其他项目("frontend")的配置非常相似:

dependencies {
    compile project(':model') //but from this project I will not pass params.
    ...

当我构建依赖项目模型时,我需要将一个参数传递给它的构建参数并根据条件执行某些操作。所以对于所有需要子项目的项目,将根据他们的需要构建。

更具体地说:当我构建 "backtend" - "model" 的项目时应该 运行 一些任务,但是当我构建 "frontend" 时我没有。

是否也可以强制清理子项目?

您可以轻松地从命令行传递参数,或者通过 gradle.propertiesext 中定义的属性传递参数。这是一个小项目:

/build.gradle

ext {
    var = "alpha"
}

task hello {
    println "Name: $project.name"
    println "Var: $var"
    println "Param: $param"
    println "Prop: $prop"
}

/gradle.properties

prop=gama

/settings.gradle

project.name = 'foo'

include 'bar'

/bar/build.gradle

task hello {
    println "Name: $project.name"
    println "Var: $var"
    println "Param: $param"
    println "Prop: $prop"
}

如果你 运行 gradle hello -Pparam=beta 它将打印:

Name: foo
Var: alpha
Param: beta
Prop: gama
Name: bar
Var: alpha
Param: beta
Prop: gama
:hello UP-TO-DATE
:bar:hello UP-TO-DATE