gpt4 book ai didi

java - 如何让任务一个接一个地执行?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:51 24 4
gpt4 key购买 nike

基本上我有 4 个任务需要按顺序运行,但我不能让它们这样做,我必须在命令行上一个一个地运行它:

gradle :drmdexsecondary:compileReleaseJava --info --debug --stacktrace
gradle :drmdexsecondary:dexClasses --info --debug --stacktrace
gradle :drmdexsecondary:jar --info --debug --stacktrace

这是我的 build.gradle:

evaluationDependsOnChildren();

task dexClasses( type:Exec ) {

// compileJava.execute()

String cmdExt = Os.isFamily(Os.FAMILY_WINDOWS) ? '.bat' : ''

println("${buildDir}")
println("${androidSdkDir}\\build-tools\\${buildToolsVersion}\\dx${cmdExt} --dex --output=${buildDir}\\classes\\classes.dex ${buildDir}\\classes\\release")

commandLine "cmd", "/c", "${androidSdkDir}\\build-tools\\${buildToolsVersion}\\dx${cmdExt} --dex --output=${buildDir}\\classes\\classes.dex ${buildDir}\\classes\\release"
}

task jar(type: Jar) {
from ("${buildDir}\\classes\\classes.dex")
}

我的问题是:

  1. dependsOn 关键字不起作用...它只是在没有任何日志消息的情况下被忽略
  2. taskname.execute() 函数不起作用...它只是在没有任何日志消息的情况下被忽略
  3. compileReleaseJava 在 build.gradle 中无法识别并出现此特定错误:Could not find property 'compileJava' on task ':drmdexsecondary:dexClasses'。

有人愿意帮忙吗?

我已查阅文档并从文档中复制粘贴,但它们似乎都不起作用。我什至尝试重新安装 Gradle...那里的示例代码很少,虽然我理解这个概念,但似乎很难将我的 Intent 转化为工作的 Gradle 代码,所以如果有任何好的资源可以提供帮助,也将不胜感激。

最佳答案

你应该阅读 gradle tasksmore about tasks .您想依赖事物而不是调用事物。

此外,我认为您应该阅读并使用 gradle android plugin .

对于您最初的问题,当您定义任务时,大括号之间的代码在配置时运行。任务的操作在任务执行时运行,并且必须添加到任务的操作列表中。这是通过使用任务的 doFirst、doLast 或 << 运算符来完成的。

这是来自 gradle 文档的示例。

task taskX << {
println 'taskX'
}
task taskY << {
println 'taskY'
}
task taskZ << {
println 'taskZ'
}
taskX.dependsOn taskY
taskY.dependsOn taskZ
taskZ.shouldRunAfter taskX

关于java - 如何让任务一个接一个地执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23880461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com