Gradle в Windows выполнить команду - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь создать задачу 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'.

Обратите внимание, что вывод содержит drop в задаче createDB.А также, если я вызываю задачу dropDB, она сообщает, что БД удалена, но я все еще могу получить к ней доступ.

Я использую Gradle 5.4.1 в Windows 10 Home 64bit.

1 Ответ

0 голосов
/ 03 июня 2019

Благодаря 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...