Gradle 任务在外部进程为 "ready"时进行处理

标签 gradle

我希望我的 gradle 任务是:

  • 执行命令(外部进程“启动我的服务器”)。
  • 等待我的外部进程的某个输出在标准输出中说“服务器准备就绪”。
  • 在我的 gradle 任务中做一些事情(基本上是与我的外部任务交谈)。
  • 当我完成我的工作后,通过启动另一个“停止我的服务器”命令来结束外部进程。
  • 当两个命令都完成后,结束任务。

  • 这就像启动一个服务器来运行集成测试,但这不是一个 tomcat/jetty 类型的服务器,所以它需要从命令行启动并等待服务器通过服务器的标准输出“准备好”。

    我目前能够使用 exec 任务来运行我的任务并获取输出。所以我想我可以用 Groovy/Java 编写代码来实现我想要的。

    然而,对这种看似常见的模式进行编码似乎很乏味。所以我想知道是否有一种更简单的方法可以在没有太多编码的情况下解决此类问题 - 即这是 gradle 具有 DSL 的常见模式吗?

    请注意,我是 Gradle 的新手,因此也将不胜感激有关此主题的任何建议。

    最佳答案

    据我所知,当前版本的 Gradle (1.4) 没有专门的 DSL 支持来启动/关闭外部进程。您可以在构建脚本中的 groovy 中实现它,应该不会太难。

    关于Gradle 任务在外部进程为 "ready"时进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987235/

    相关文章:

    android - 传递依赖的影响是什么?

    java - Apache Camel-DirectConsumerNotAvailableException:端点上没有可用的使用者。交换[]

    android - 检索项目 : No resource found that matches the given names 的父项时出错

    android - 更新gradle到java 8时,总是在更改android测试代码后重建项目

    android - Sonarqube 和 SonarScanner 的关系

    android - DexException:多个dex文件定义

    android - Android Studio Gradle同步无法正常工作

    java - Gradle 传递依赖项不起作用?

    android-studio - 升级 gradle 到 v6.1.1 找不到方法

    gradle - Gradle获取当前依赖项版本