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

Mal*_*aYa 4 gradle build.gradle

我有项目(“后端”)配置:

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

与其他项目(“前端”)的配置非常相似:

dependencies {
    compile project(':model') //but from this project I will not pass params.
    ...
Run Code Online (Sandbox Code Playgroud)

当我构建依赖项目模型时,我需要将一个参数传递给它的构建参数,并根据情况做一些事情。因此,对于需要子项目的所有项目,它将根据他们的需求进行构建。

更具体地说:构建“ backtend”时,“模型”的项目应运行某些任务,但是构建“ frontend”时,则不运行。

是否可以强制清洁子项目?

Mar*_*rga 5

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

/build.gradle

ext {
    var = "alpha"
}

task hello {
    println "Name: $project.name"
    println "Var: $var"
    println "Param: $param"
    println "Prop: $prop"
}
Run Code Online (Sandbox Code Playgroud)

/gradle.properties

prop=gama
Run Code Online (Sandbox Code Playgroud)

/settings.gradle

project.name = 'foo'

include 'bar'
Run Code Online (Sandbox Code Playgroud)

/bar/build.gradle

task hello {
    println "Name: $project.name"
    println "Var: $var"
    println "Param: $param"
    println "Prop: $prop"
}
Run Code Online (Sandbox Code Playgroud)

如果运行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
Run Code Online (Sandbox Code Playgroud)