我尝试创建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。
答案 0 :(得分:0)
感谢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
}