Gradle Exec Task not starting with psql on remote host
我需要在Gradle(版本4.2.1)中的远程数据库上执行一个SQL脚本。所以我尝试了执行任务。当数据库在我的本地计算机上时,任务可以工作。对于远程主机,任务没有启动。
这些是任务(第一个任务非常有效)。
1 2 3 4 5 6 7 | 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 } |
命令行输出(几分钟后我取消了它):
1 2 3 | C:\myproject>gradlew :proj:psqlRemoteExec --stacktrace <-------------> 0% EXECUTING [3m 43s] > :proj:psqlRemoteExec |
在命令(不带渐变)上,该命令起作用。
脚本中的密码文件配置错误。要解决可以设置环境变量的问题,请执行以下操作:
1 2 3 4 | task psqlRemoteExec(type: Exec) { environment 'PGPASSFILE', 'path/to/pgpass.conf' commandLine 'cmd', '/c', 'psql -h my.remote.host -f myscript.sql' } |