我想创建一个要执行的任务
依赖关系--update-locks':'
我有一个配置:
function searchArrayInArray(array1, array2) {
var result = [];
let set = new Set();
for(el of array2){
set.add(el);
}
for (var j = 0, e = array1.length; j < e; j++){
var element = array1[j];
if( set.has(element) ){
result.push(element);
}
}
return result;
}
我尝试
dependencyLocking {
lockAllConfigurations()
}
但是有:
- 出了什么问题:无法确定任务':lockDependencies'的依赖关系。
在根项目中找不到路径为'--update-locks :'的任务
答案 0 :(得分:0)
您不能将Gradle命令行参数作为任务依赖项传递,这就是您上面的错误所在。
使用--write-locks
或--update-locks
写锁的状态实际上是在构建生命周期的早期发生的。
您可以使用以下命令从某种程度上控制它:
*在您的构建脚本中创建一个占位符任务
*在settings.gradle(.kts)
中,从命令行查询所请求的任务,如果存在,请更改启动参数:
if (startParameter.taskNames.contains('placeHolder')) {
startParameter.setWriteDependencyLocks(true)
}
请注意,如果您尝试锁定构建本身的类路径,则这不是一个选择,这是使用命令行标志的动机之一。
还请注意,这仅允许将--update-locks *:*
之类的标记替换为updateLocks
之类的任务调用,但如果将该任务作为其他任务的依赖项进行连接,则将不起作用,因为它需要明确要求。而且,在计算任务图之后 之后执行开始参数突变在生命周期中为时已晚。