我有一个gradle构建,它将在我们的应用程序上运行一些测试。当前,如果开发人员忘记先运行mongod,则将 Assets 存储在mongoDB中的测试将失败。因此,我希望任何使用mongoDB的构建都失败,并向用户明确告知他启动mongoDB的消息。理想情况下,稍后我们将从gradle启动mongoDB。
我已经找到了关于how to see if mongoDB is running under Linux的这篇不错的文章,这很简单。我确信可以使用tasklist /FI "IMAGENAME eq mongod"
等在Windows下完成类似的操作。但是我需要知道如何在gradle中正确使用它。
是否有跨平台的方法来检查服务或正常进程是否在gradle中运行?
最佳答案
如果您将必要的Gradle任务设置为依赖startManagedMongoDb
任务,那么Orid提供的使用Gradle Mongo Plugin的建议应该可以起作用。
尽管这似乎是最简单的方法,但它可能与在非开发环境中或已经在运行MongoDb服务的持续集成构建服务器上使用MongoDb的方式相抵触。
一个非常简单的解决方案是将MongoDb检查功能添加到自定义的gradlew.bat
(和gradlew
bash脚本(如果它将在* nix操作系统上运行)的顶部)。
另一个不需要更改gradlew.bat
脚本的简单解决方案是创建自己的MongoDb检查脚本,然后将其称为gradlew.bat
,并传递命令行参数。我不确定Windows中的所有位置参数是否都与bash $@
等效,但是可以使用SHIFT %1
遍历参数来生成gradlew.bat
命令行。