2017-02-23 169 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%] 

而且確保你安裝庫,同時登錄的詹金斯用戶帳戶下:在這種情況下,如下的訪問代理服務器很容易指定。葡萄庫是用戶帳戶特定的。