如何在gradle中检查正在运行的进程或服务

时间:2015-03-21 14:41:28

标签: mongodb gradle continuous-integration

我有一个gradle构建,它对我们的应用程序运行了一些测试。目前,如果开发人员忘记首先运行mongod,那么在mongoDB中存储资产的测试将失败。因此,我希望任何使用mongoDB的构建都会失败并显示一条消息,该消息明确告诉他启动mongoDB。理想情况下,稍后我们将从gradle启动mongoDB。

我已经找到了这篇关于how to see if mongoDB is running under Linux的好文章,这很简单。我确信可以在Windows下使用tasklist /FI "IMAGENAME eq mongod"等完成类似的操作。但我需要知道如何在gradle中正确使用它。

是否有跨平台方式来检查服务或正常流程是否在gradle中运行?

1 个答案:

答案 0 :(得分:0)

如果您将必要的Gradle任务设置为依赖startManagedMongoDb任务,则Orid提供的使用Gradle Mongo Plugin的建议应该有效。

虽然这似乎是最简单的方法,但它可能会破坏MongoDb将如何在非开发环境中使用,或者在MongoDb服务已经运行的持续集成构建服务器上使用。

一个非常简单的解决方案是将MongoDb检查功能添加到自定义gradlew.bat(以及gradlew bash脚本的顶部(如果它将在* nix操作系统上运行)。 / p>

另一个不需要更改gradlew.bat脚本的简单解决方案是创建自己的MongoDb检查脚本,然后调用gradlew.bat,传递命令行参数。我不确定在Windows中是否存在与bash $@等效的所有位置参数,但是使用SHIFT %1循环遍历参数可用于生成gradlew.bat命令行。