Gradle Exec远程主机上不以psql开头的任务
问题描述:
我需要在Gradle(版本4.2.1)中的远程数据库上执行SQL脚本。所以我尝试了Exec任务。当数据库位于本地机器上时,该任务可以工作。对于远程主机,任务不会启动。Gradle Exec远程主机上不以psql开头的任务
这些是任务(第一个完美)。
task psqlLocalExec(type: Exec) {
commandLine 'cmd', '/c', 'psql -f myscript.sql'
}
task psqlRemoteExec(type: Exec) {
commandLine 'cmd', '/c', 'psql -h my.remote.host -f myscript.sql' // not working
}
命令行输出(I取消了它的一些分钟后):
C:\myproject>gradlew :proj:psqlRemoteExec --stacktrace
<-------------> 0% EXECUTING [3m 43s]
> :proj:psqlRemoteExec
在CMD(不含摇篮)命令的工作。
答
我的Password File Configuration在脚本中是错误的。为了解决这个问题的环境变量可以设置:
task psqlRemoteExec(type: Exec) {
environment 'PGPASSFILE', 'path/to/pgpass.conf'
commandLine 'cmd', '/c', 'psql -h my.remote.host -f myscript.sql'
}
+0
你可以接受你自己的答案,将这个问题标记为已解决。 – Henry
尝试'COMMANDLINE 'CMD', '/ C', 'PSQL', '-h', 'my.remote.host', '-f', 'myscript.sql'或'commandLine'cmd/c psql -h my.remote.host -f myscript.sql'.split('')' –
我已经尝试过了,不幸的是它有相同的负面结果。 – deve
你可以在没有gradle的情况下从命令行运行命令吗? –