如何在gradle.properties文件中声明列表?

时间:2016-06-14 09:45:01

标签: gradle

当我尝试在gradle.properties文件中写这样的东西时:

defaultTasks=['deploy']

我收到下一条消息:

BUILD FAILED
FAILURE: Build failed with an exception.


* What went wrong:
Cannot cast object '['deploy']' with class 'java.lang.String' to class 'java.util.List'

3 个答案:

答案 0 :(得分:3)

我想,不可能这样做,因为这是一个简单的java属性,默认情况下属性值是一个String。但是,您可以向脚本添加一些初始化逻辑,以读取自定义属性并使用它们初始化defaultTasks属性。

将自定义属性添加到gradle.properties文件

extDefaultTasks=temp1,temp2

temp1temp2是任务名称(此任务应存在)。在构建脚本中,读取此属性,解析它并使用它初始化defaultTasks

//load custom property value and split it into the task names
def String[] tasksToUseAsDefault = extDefaultTasks.split(',')
//use task names to initialize defaultTasks
tasksToUseAsDefault.each {defaultTasks.add(it.trim())}

此配置应添加到脚本的根目录中,以便在构建的配置阶段完成

答案 1 :(得分:1)

.properties个文件中的值始终显示为String s。

您可以在.properties文件中声明数组,如下所示。

defaultTasks=deploy,build,run,compile 
// or just defaultTasks=deploy if you have only one task

并将其转换为Array文件中的.gradle,如下所示。

tasks = properties.getProperty("defaultTasks").split(",")

答案 2 :(得分:-1)

我在谷歌搜索同样的问题时发现了这个问题,但是对于build.gradle文件,而不是gradle.properties,所以我认为我会像像我一样分享Gradle新手的答案。

在@Stanislav的答案的基础上,在build.gradle文件中,添加:

def String[] defaultTasks = [
  'temp1',
  'temp2'
]