我们可以通过api设置项目属性和系统属性
setProjectProperties(Map<String,String> projectProperties)
setSystemPropertiesArgs(Map<String,String> systemPropertiesArgs)
这是我本地的 startParameter 示例:
task startBuild(type: GradleBuild) {
StartParameter startParameter = project.gradle.startParameter;
Iterable<String> tasks = new ArrayList<String>();
Iterable<String> excludedTasks = new ArrayList<String>();
startParameter.getProjectProperties().each { entry ->
println entry.key + " = " + entry.value;
if(entry.key.startsWith('t_')){
tasks << (entry.key - 't_');
}
if(entry.key.startsWith('build_') && "true" == entry.value){
tasks << (':' + (entry.key - 'build_') +':build');
}
if(entry.key.startsWith('x_') && "true" == entry.value){
excludedTasks << (entry.key - 'x_');
}
}
startParameter.setTaskNames(tasks);
startParameter.setExcludedTaskNames(excludedTasks);
println startParameter.toString();
}
我们可以从此链接StartParameter引用 api
当您需要自定义 gradle 构建逻辑时,start 参数在 gradle 中非常强大。