簡體   English   中英

使用帶有Jenkins Job DSL插件錯誤的Grape下載依賴項

[英]Downloading dependencies using grape with Jenkins Job DSL plugin error

我使用Jenkins Job DSL插件完成了一項工作,以使用SVNKit庫獲取SVN分支,但是使用Grape(使用Ivy)設置de jar庫時遇到了一個問題。

如果我在腳本中設置了此設置:

@Grapes( 
    @Grab(group='org.tmatesoft.svnkit', module='svnkit', version='1.8.3') 
)
import org.tmatesoft.svn.core.SVNDirEntry
import org.tmatesoft.svn.core.SVNNodeKind
...
...

我收到以下錯誤:

FATAL: startup failed:
General error during conversion: Error grabbing Grapes -- [download failed: net.java.dev.jna#jna;3.5.2!jna.jar]

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: net.java.dev.jna#jna;3.5.2!jna.jar]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    ...

很好奇,因為如果我轉到%USERPROFILE%\\。groovy \\ grapes \\ org.tmatesoft.svnkit \\ svnkit \\ jars,則SVNKIT的jars在那里,但是由於某些奇怪的原因,Grapes無法下載JNA jars。

我在葡萄路徑中下載JNA jar時遇到了這個問題,但它可以解決問題,但是我想知道發生了什么以及如何以正確的方式進行操作。

我正在使用:

  • Windows 7 64位
  • Oracle JDK 1.6.0_45
  • Apache Tomcat 5.5.26
  • 詹金斯1.553
  • Job DSL Jenkins插件1.21

更新:我不知道為什么,但是現在刪除de .groovy文件夾后,似乎工作正常。

我想我第一次嘗試獲取JNA時遇到了網絡問題,Ivy決定將JNA設置為Maven Central上的斷開鏈接。 現在可以工作的原因可能是因為刪除了.groovy文件夾后,Grape嘗試下載並且這次網絡正常。

如果有人可以澄清這一點將是很好的:)

您是否嘗試過配置抓斗解析器( http://docs.groovy-lang.org/latest/html/api/groovy/lang/GrabResolver.html )? 我不知道葡萄的默認解析器,但是默認解析器可能沒有用。

我認為有時候,當使用Grapes(以及其他類似的技術)解決依賴關系時,在完全下載或正確配置依賴關系之前會切換一些標志。 我也曾在Maven和Gradle中發生過這種情況,通常可以通過吹掉.m2或.gradle中的緩存工件並強制再次獲取它們來解決問題。

我們將nexus用作grapeConfig.xml中的主機。

 <?xml version="1.0" encoding="UTF-8"?> <ivy-settings> <settings defaultResolver="downloadGrapes" /> <property name="repo.host" value="ourhost.on.network" override="false"/> <property name="repo.realm" value="Sonatype Nexus Repository Manager" override="false"/> <property name="repo.user" value="xxx" override="false"/> <property name="repo.pass" value="xxx" override="false"/> <credentials host="nexus.evdssz.admin.ch" realm="${repo.realm}" username="${repo.user}" passwd="${repo.pass}"/> <resolvers> <chain name="downloadGrapes" returnFirst="true"> <ibiblio name="nexus" root="https://ourhost.on.network:8443/nexus/content/groups/public/" m2compatible="true"/> <ibiblio name="nexusreleases" root="https://ourhost.on.network:8443/nexus/content/repositories/releases/" m2compatible="true"/> <ibiblio name="localm2" root="file:/opt/jenkins_home/.m2/repository/" checkmodified="true" changingPattern=".*" changingMatcher="regexp" m2compatible="true"/> </chain> </resolvers> </ivy-settings> 

Jenkins的groovy庫中使用以下示例代碼:

import com.google.common.collect.HashBiMap
@Grab(group='com.google.code.google-collections', module='google-collect', version='snapshot-20080530')
def getFruit() { [grape:'purple', lemon:'yellow', orange:'orange'] as HashBiMap }
assert fruit.lemon == 'yellow'
assert fruit.inverse().yellow == 'lemon'

啟用葡萄的調試功能。 在您的詹金斯上安裝葡萄工具。 設置Java選項以啟用調試信息:JAVA_OPTS =“-Dgroovy.grape.report.downloads = true -Divy.message.logger.level = 4”

上面的信息來自這里: http : //docs.groovy-lang.org/latest/html/documentation/grape.html

完成所有新配置后,我還:-刪除了.groovy / grapes / *-重新啟動了jenkins

麥克風

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM