小编Eve*_*ali的帖子

无法从Gradle构建脚本中查询数据库

我正在尝试从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)

sql-server groovy jtds gradle

3
推荐指数
1
解决办法
1073
查看次数

无法捕获 groovy 执行的完整输出

我正在尝试列出 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 机器上运行。

io groovy process processbuilder

2
推荐指数
1
解决办法
2211
查看次数

标签 统计

groovy ×2

gradle ×1

io ×1

jtds ×1

process ×1

processbuilder ×1

sql-server ×1