当我尝试在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'
答案 0 :(得分:3)
我想,不可能这样做,因为这是一个简单的java属性,默认情况下属性值是一个String。但是,您可以向脚本添加一些初始化逻辑,以读取自定义属性并使用它们初始化defaultTasks
属性。
将自定义属性添加到gradle.properties
文件
extDefaultTasks=temp1,temp2
temp1
和temp2
是任务名称(此任务应存在)。在构建脚本中,读取此属性,解析它并使用它初始化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'
]