我正在尝试从gradle脚本任务中查询数据库。我从一个普通的脚本开始验证代码
import groovy.sql.Sql
this.class.classLoader.rootLoader.addURL(new URL('file:<..>/jtds-1.2.2.jar'))
def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) {
sql ->
first = sql.firstRow( "SELECT * FROM PROJECT" )
}
Run Code Online (Sandbox Code Playgroud)
我使用groovy QueryTest.groovy启动并验证了它是否有效。然后我在gradle任务中移动了脚本,代码没有任何变化,但由gradle buildscript语句处理了加载
import groovy.sql.Sql
defaultTasks 'queryTest'
buildscript {
dependencies {
classpath files('<..>/jtds-1.2.2.jar')
}
}
task queryTest () {
// l'update va su REPOSITORYURL + '/' + alm.project.vcrProjectName + '/' + Reference
doLast {
def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试列出 svn 文件夹的内容,其中包含大约 1200 个项目。沿着“在 groovy 脚本中执行外部程序并捕获输出”中的内容,我开发了以下代码
def svnCommand = "svn list ${repoUrl}"
def sout = new StringBuilder()
def serr = new StringBuilder()
Process sproc = svnCommand.execute()
sproc.consumeProcessOutput(sout, serr)
sproc.waitForProcessOutput()
println sout
Run Code Online (Sandbox Code Playgroud)
如果我要运行此脚本,无论我将初始容量设置多高,我总是会得到截断的输出。输出明显被截断,如以下摘录所示
...
SS0D76I0.cpy
SS0D76M0.cpy
SS0D76N0.cpy
SS
Run Code Online (Sandbox Code Playgroud)
关于捕获命令的完整输出有什么建议吗?该脚本在 Windows 机器上运行。