如何在 gradle 中为基于 ext 的属性分配默认值

use*_*331 4 groovy gradle

我正在开发一个 gradle 插件,它的任务是使用项目对象本身访问额外的参数,例如

project.extraParam1
project.extraParam2
Run Code Online (Sandbox Code Playgroud)

现在我可以从另一个项目使用这个插件,并将 build.gradle 文件中的参数传递为

ext {
  extraParam1 value1
  extraParam2 value2
}
Run Code Online (Sandbox Code Playgroud)

我的意思是我在另一个项目的build.gradle中应用这个插件。定义 ext 参数并调用插件任务并且它可以工作。该任务能够访问额外的属性。但是,我想为这些设置一些默认值,这样即使使用该插件的项目没有定义 ext 参数,它也有一些默认值并且适用于默认值。

ToY*_*nos 5

在你的插件中,你可以做类似的事情:

def extraParam1 = project.hasProperty('extraParam1') ? project.extraParam1 : 'default value'
Run Code Online (Sandbox Code Playgroud)

  • 您可以将 findProperty 方法与 elvis 运算符一起使用。当属性不存在时,findProperty 将返回 null 值;如果存在,则返回其值。这是一个较短的表达方式。`def extraParam1 = project.findProperty('extraParam1') ?: '默认值'` (5认同)