繁体   English   中英

让Android Gradle打开Windows cmd,并在构建完成后运行命令?

[英]Having android gradle open windows cmd and run a command after build done?

我正在使用以下标准构建脚本构建一个android模块:

buildscript {// top-level    
  repositories {
      google()
      jcenter()
  }
  dependencies {
      classpath 'com.android.tools.build:gradle:3.0.1'
  }
}
allprojects {
  repositories {
      google()
      jcenter()
  }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

我在Google上搜索了很多,以了解如何使用gradle打开windos cmd(我在Win7上)并运行命令。 我找到了Exec任务并添加了任务,但是它对我不起作用,也许我仍然不了解groovy和gradle。 请让我清楚该怎么做。

编辑
通过使用评论中提到的论坛帖子,我将其添加到了android {..}部分:

    task testingit(type:Exec) {
      println('try open cmd...............')
      commandLine "cmd","/k",'node', '-v'
    }

我得到了字符串输出,但cmd无法打开,并且没有错误消息。

如果要在构建结束时执行此任务,则可以使用build.finalizedBy

task endBuildTask(type: Exec) {
   commandLine  'cmd','/c','start', 'cmd.exe' ,'@cmd' , '/k', 'echo', 'Hello'
}
build.finalizedBy(endBuildTask)
// or gradle.buildFinished{endBuildTask.execute()}

这将在构建结束时创建一个新命令行,将@cmd之后的命令传递给新创建的命令行。 如果要在执行命令后关闭此新命令行,请使用“ / c”而不是“ / k”。

我只是回发了我如何将上面接受的答案放到我的应用程序中,以防对任何人有用(因为build.finalizedBy(endBuildTask)无法正常工作,我不明白为什么,但是gradle.buildFinished(...)做的工作)

这就是我的工作方式:

task endBuildTask(type: Exec) {
  workingDir 'C:\\tmp\\1\\'
  commandLine  'cmd','/c','node', '%FILE_JS%'
}

gradle.buildFinished{
    endBuildTask.execute()
}

我有一个想要在Android构建结束后执行的nodejs应用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM