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

标签 java android gradle

基本上我有 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/

相关文章:

java - SSH 服务器应该向客户端发送什么作为对用户按退格键的响应?

android - 如何在 Lollipop 中启用软件渲染?

android - Facebook Audience Network 在加载广告时返回 "unknown error"

eclipse - gradle:你能从命令行应用插件吗

java - Android Studio 变得非常缓慢并且不断出现 "updating indices"

android - Gradle 不会安装 Unresolved 依赖项

java - 无法持久化我的对象

java - Elasticsearch java API 批量删除不起作用

java - 在 Swing 中停止鼠标悬停事件的线程

java - Android Things 包 - UnsatisfiedLinkError