Search code examples
groovygroovy-grape

Get Grape grabbing dependencies from Artifactory


I have the following script (run from Jenkins job) that I cannot get to download dependencies!

  1. groovy.grape.report.downloads is somewhat useful in that its telling me what it's attempting to download. How can I get grape to tell me where its trying to download it from?

  2. Is there anything obviously wrong with my GrabResolver setting? I am assuming that name is just a name and is otherwise meaningless.

The Script:

@GrabResolver(name='artifactory', root='http://artifactory:8081/artifactory/repo1',  m2Compatible=true)
@Grapes([
  @Grab('org.codehaus.groovy.modules.http-builder:http-builder:0.7.2'),
  @Grab('net.sf.json-lib:json-lib:2.4')
])
import groovy.text.SimpleTemplateEngine
import groovyx.net.http.RESTClient
import net.sf.json.JSON

println "ready?"
...

Output from Jenkins console:

[SmartViewer-Trial] $ c:\jenkins\tools\hudson.plugins.groovy.GroovyInstallation\Groovy_2.3.7\groovy-2.3.7\bin\groovy.bat -Dgroovy.grape.report.downloads=true c:\jenkins\workspace\SmartViewer-Trial\hudson4531449279742183970.groovy
Resolving dependency: net.sf.json-lib#json-lib;2.4 {default=[default]}
Resolving dependency: org.codehaus.groovy.modules.http-builder#http-builder;0.6 {default=[default]}
Preparing to download artifact net.sf.json-lib#json-lib;2.4!json-lib.jar
Preparing to download artifact org.codehaus.groovy.modules.http-builder#http-builder;0.6!http-builder.jar
Preparing to download artifact commons-beanutils#commons-beanutils;1.8.0!commons-beanutils.jar
Preparing to download artifact commons-collections#commons-collections;3.2.1!commons-collections.jar
Preparing to download artifact commons-lang#commons-lang;2.5!commons-lang.jar
Preparing to download artifact commons-logging#commons-logging;1.1.1!commons-logging.jar
Preparing to download artifact net.sf.ezmorph#ezmorph;1.0.6!ezmorph.jar
Preparing to download artifact org.apache.httpcomponents#httpclient;4.2.1!httpclient.jar
Preparing to download artifact net.sourceforge.nekohtml#nekohtml;1.9.16!nekohtml.jar
Preparing to download artifact xml-resolver#xml-resolver;1.2!xml-resolver.jar
Preparing to download artifact org.apache.httpcomponents#httpcore;4.2.1!httpcore.jar
Preparing to download artifact commons-codec#commons-codec;1.6!commons-codec.jar
Preparing to download artifact xerces#xercesImpl;2.9.1!xercesImpl.jar

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: Error grabbing Grapes -- [download failed: net.sf.json-lib#json-lib;2.4!json-lib.jar]

And stacktrace...

Solution

  • It did start working eventually. I think it was partly an issue with being behind a corporate proxy and the fact that running in a windows envrionment and the downloaded artifacts end up on the network due to another policy here.

    @GrabResolver(name='artifactory', root='http://artifactory:8081/artifactory/repo1', m2Compatible=true)
    @Grab('org.codehaus.groovy.modules.http-builder:http-builder:0.6')