2017-02-23 82 views
1

在我的Jenkins构建中,我有一个Groovy脚本(因为我使用的是管道插件),我试图使用OkHttpClient进行API调用。导入库到Jenkins groovy脚本

我有以下的葡萄代码,我从here有:

@Grapes(
    @Grab(group='com.squareup.okhttp', module='okhttp', version='2.7.5') 
) 

对于这一点,我得到:

General error during conversion: Error grabbing Grapes -- [unresolved dependency: com.squareup.okkhttp#okhttp;2.7.5: not found] 

java.lang.RuntimeException: Error grabbing Grapes -- [unresolved dependency: com.squareup.okhttp#okhttp;2.7.5: not found] 
at sun.reflect.NativeContructorAccessorImpl.newInstance0(Native Method) 

任何想法可能是错误的?

不能在Jenkins管道脚本中运行时检测包吗?

+0

什么是詹金斯版本? –

+0

版本是'2.46' – octavian

+0

是否安装了[管道共享Groovy库插件](https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin)。他们自2.3版本以来支持'@ Grab' –

回答

0

我有一个类似的问题,运行使用@Grab注释的Jenkins Groovy控制台脚本。该错误是由Jenkins Groovy无法解析我的企业代理主机服务器引起的。

Groovy的访问代理服务器可以在命令行设置,如下所示:

groovy -Dhttp.proxyHost=yourproxy -Dhttp.proxyPort=portNumber yourscript.groovy

,但我没能找出如何做到这一点的詹金斯的Groovy。

我用以下解决方法结束:

您可以安装在命令行中所需的库(假设你可以访问詹金斯服务器)。

grape -Dhttp.proxyHost=proxy.server.net -Dhttp.proxyPort=port install %groupId% %artifactId% [%version%] 

而且确保你安装库,同时登录的詹金斯用户帐户下:在这种情况下,如下的访问代理服务器很容易指定。葡萄库是用户帐户特定的。