从命令行覆盖build.gradle中的属性

Won*_*abo 35 gradle

build.gradle我们可以定义变量,如:

def libVersion='someVersion'
Run Code Online (Sandbox Code Playgroud)

我们可以在命令行中覆盖属性 -PlibVersion=otherVersion

不幸的是,这个命令行选项似乎不影响定义的局部变量build.gradle.有没有办法从命令行覆盖这些?请注意,由于某些原因,我不想创建settings.gradle也不想创建gradle.properties文件.

JB *_*zet 57

这是一个例子:

ext.greeting = project.hasProperty('greeting') ? project.getProperty('greeting') : 'hello'

task greet << {
    println greeting
}
Run Code Online (Sandbox Code Playgroud)

如果你跑gradle greet,它会打印出来hello.

如果你跑gradle -Pgreeting=welcome greet,它会打印出来welcome.

  • 可以简化为`ext.greeting = project.properties ['greeting']?:'hello'` (5认同)