在Jenkins中运行groovy脚本 [英] Run groovy scripts in Jenkins

查看:715
本文介绍了在Jenkins中运行groovy脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在jenkins中运行groovy脚本.但是我遇到了错误.

I am trying to run groovy script in jenkins. But i am getting below error.

            import groovy.sql.Sql
            def output = []
            def sql = Sql.newInstance('jdbc:mysql://localhost:3306/logging_schema',     'root', '****', 'com.mysql.jdbc.Driver')
            String sqlString = "SELECT * debug DESC Limit 10;"
            sql.eachRow(sqlString){ row ->  
                output.push(row[0])`enter code here`
            }
            return output


                FATAL: command execution failed
            java.io.IOException: Cannot run program "groovy" (in directory "/var/lib/jenkins/workspace/TestNexusDeploy"): error=2, No such file or directory
                at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
                at hudson.Proc$LocalProc.<init>(Proc.java:245)
                at hudson.Proc$LocalProc.<init>(Proc.java:214)
                at hudson.Launcher$LocalLauncher.launch(Launcher.java:846)
                at hudson.Launcher$ProcStarter.start(Launcher.java:384)
                at hudson.Launcher$ProcStarter.join(Launcher.java:395)
                at hudson.plugins.groovy.Groovy.perform(Groovy.java:102)
                at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
                at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
                at hudson.model.Build$BuildExecution.build(Build.java:205)
                at hudson.model.Build$BuildExecution.doRun(Build.java:162)
                at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
                at hudson.model.Run.execute(Run.java:1728)
                at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
                at hudson.model.ResourceController.execute(ResourceController.java:98)
                at hudson.model.Executor.run(Executor.java:404)
            Caused by: java.io.IOException: error=2, No such file or directory
                at java.lang.UNIXProcess.forkAndExec(Native Method)
                at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
                at java.lang.ProcessImpl.start(ProcessImpl.java:134)
                at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
                ... 15 more
            Build step 'Execute Groovy script' marked build as failure
            [WS-CLEANUP] Deleting project workspace...[WS-CLEANUP] done
            Finished: FAILURE

需要我做一些全局配置或任何其他解决方案时,请帮帮我.

Help me with this, should i need to do some global configuration or any other solutions.

推荐答案

我已经找到解决方案,我们必须添加适当的jar文件来运行sql实例.可以从类路径或工作空间中加载jar文件,在这种情况下,您必须先创建classloader对象,然后尝试如下所述加载jar文件.

I have found the solution, we have to add the appropriate jar file to run sql instance. Jar file can be loaded from classpath or workspace, in that case u have to first create classloader object and try to load the jar file as mentioned below.

import groovy.sql.Sql;

def classLoader = ClassLoader.systemClassLoader
while (classLoader.parent) {
    classLoader = classLoader.parent
}
classLoader.addURL(new File("/var/lib/jenkins/workspace/egsdloen-
logging/mysql/mysql.jar").toURL())
def sql = 
Sql.newInstance('jdbc:mysql://server/dbname', 
'user', 'password', 'com.mysql.jdbc.Driver')
sql.execute 'SELECT * FROM tablename limit 10'
sql.close()

这篇关于在Jenkins中运行groovy脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆