I ran into the same problem. I assume you're trying to do it in a System Groovy Script. If so, that's the problem. The System Groovy Scripts run under the version of Groovy built into Jenkins. In my case, it's 1.8.5. You'll probably need to run this in a non-system Groovy Script. Then you get into the situation that I'm still trying to resolve, which is getting the build variables and environment variables accessible by the script. You can create a parameter file that you can fill using a System Groovy script, then in the next build step access it. However, I'm trying to create the properties file with a name and location specific to the build, and am trying to figure out how to transfer the settings from the System Groovy build step to the non-system Groovy build step
On Monday, August 24, 2015 at 2:29:34 PM UTC-4, Jeff Vincent wrote: > > I'm trying to write a Groovy script that will query our Sonatype Nexus OSS > Maven repository for information about a given artifact (war file) that was > just deployed as part of a build. I then want to set Jenkins job > parameters so I can use them in subsequent steps in the job. > > My script is currently using the groovyx.net.http.RESTClient and works in > stand-alone mode see script below, but when I run it as a Groovy System > Script it throws the following: > > FATAL: org/apache/ivy/core/settings/IvySettings > > java.lang.NoClassDefFoundError > <http://stacktrace.jenkins-ci.org/search?query=java.lang.NoClassDefFoundError>: > org/apache/ivy/core/settings/IvySettings > > > If I remove the @GrabResolver, @Grapes and @Grab directives, it throws this > error: > > > ERROR: Build step failed with exception > > org.codehaus.groovy.control.MultipleCompilationErrorsException > <http://stacktrace.jenkins-ci.org/search?query=org.codehaus.groovy.control.MultipleCompilationErrorsException>: > startup failed: > > Script1.groovy: 2: unable to resolve class groovyx.net.http.RESTClient > > @ line 2, column 1. > > import groovyx.net.http.RESTClient > > ^ > > > How do I specify a dependency for a Groovy script so I can import and use a > given class? Thanks! > > > ##Script: > > @GrabResolver(name='myrepo', > root='http://nexus.mycompany.com/nexus/content/groups/myrepo/', > m2Compatible='true') > > @Grapes([ > > @Grab('org.codehaus.groovy.modules.http-builder:http-builder:0.7.1') > > ]) > > > import groovyx.net.http.RESTClient > > import hudson.model.* > > > > try { > > def client = new RESTClient( > 'http://nexus.mycompany.com/nexus/service/local/artifact/maven/resolve' ) > > println "Get w/ path" > > def resp = client.get( > > query : ['r': 'myrepo', 'g': 'mygroupid', 'a': 'myartifactid', 'v': > '1.0-SNAPSHOT', 'e': 'jar'], > > headers: ['Accept': 'application/json', "Content-Type": > 'application/json'] > > ) > > > > def json = resp.getData() > > > > def version = json.data.version > > def url = json.data.repositoryPath > > def sha1 = json.data.sha1 > > > > printf( "Found: version: '%s' url: '%s' sha1: '%s'", version, url, sha1) > > > > } catch (Exception ex) { > > println ex.getMessage() > > } > > > -- > Jeff Vincent > See my LinkedIn profile at: > http://www.linkedin.com/in/rjeffreyvincent > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/79330dce-15bf-4a92-85ee-f1e6d2dcf4f9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
