gradle - Windows上的Gradle执行命令

标签 gradle

我尝试创建Gradle任务以在开发机器上删除并创建数据库。

这些命令如下:

"c:\Program Files\MariaDB 10.3\bin\mysqladmin.exe" --user=dbuser --password=dbpass --force drop mydb

"c:\Program Files\MariaDB 10.3\bin\mysqladmin.exe" --user=dbuser --password=dbpass --force create mydb

我的gradle任务是这些:
task dropDB {
    exec {
        commandLine 'cmd', '/c', '"c:\\Program Files\\MariaDB 10.3\\bin\\mysqladmin.exe" --user=dbuser --password=dbpass --force drop mydb'
        ignoreExitValue = true
    }
}

task createDB {
    exec {
        commandLine 'cmd', '/c', '"c:\\Program Files\\MariaDB 10.3\\bin\\mysqladmin.exe" --user=dbuser --password=dbpass --force create mydb'
        ignoreExitValue = true
    }
}

我的问题是,即使我仅执行一个任务,似乎两个任务都已执行。
执行createDB的输出:
15:58:58: Executing task 'createDB'...

> Configure project :
Database "mydb" dropped

> Task :createDB UP-TO-DATE

BUILD SUCCESSFUL in 0s
15:58:59: Task execution finished 'createDB'.

请注意,输出包含在createDB任务中删除的的。而且,如果我调用dropDB任务,它会报告已删除数据库,但我仍然可以访问它。

我在Windows 10 Home 64bit上使用Gradle 5.4.1。

最佳答案

感谢M.Ricciuti,有效的解决方案是这样的:

task createDB(type:Exec) {
    commandLine 'cmd', '/c', '"c:\\Program Files\\MariaDB 10.3\\bin\\mysqladmin.exe" --user=dbuser --password=dbpass --force create mydb'
    ignoreExitValue = true
}

关于gradle - Windows上的Gradle执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344069/

相关文章:

android - 为什么在将 gradle 项目添加到另一个 repo 后,IDE 中出现语法错误,即使在构建工作时也是如此?

c++ - 如何在(Android Studio)NDK(C/C++ API)中运行Tensorflow-Lite推理?

spring-boot - Spring Boot 构建信息通过/info 执行器端点

java - 如何将Cucumber测试添加到预先存在的Gradle项目(Java)?

gradle - 带有crashlytics的自动Beta版

java - IntelliJ 社区版中的 Spring Boot 项目

java - Gradle - 如何从 GitHub 创建和获取简单的类

eclipse - 我如何说服eclipse/JUnit4在gradle/eclipse项目中找到所有测试?

java - Gradle:如何排除一些测试?

java - 如何为 GradleWorkerMain 设置 JVM 选项?