1

Jenkins Job DSL プラグインを使用して SVNKit ライブラリで SVN ブランチを取得する仕事をしましたが、Grape (Ivy を使用) を使用して de jar ライブラリを設定する際に 1 つの問題があります。

スクリプトでこれを設定した場合:

@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 の jar がそこにあるのに、奇妙な理由で Grapes が JNA jar をダウンロードできないため、非常に興味深いです。

ブドウのパスに JNA jar をダウンロードするこの問題を回避しましたが、うまくいきましたが、何が起こっているのか、正しい方法でこれを行う方法を教えてください。

私は使用しています:

  • Windows 7 64 ビット
  • オラクルJDK 1.6.0_45
  • アパッチ トムキャット 5.5.26
  • ジェンキンス 1.553
  • ジョブ DSL Jenkins プラグイン 1.21

更新:理由はわかりませんが、de .groovy フォルダーを削除した後、問題なく動作しているようです。

初めて JNA を取得しようとしたときにネットワークの問題が発生したと思われ、Ivy は Maven Central で JNA を壊れたリンクとして設定することにしました。.groovy フォルダーを削除した後、Grape がダウンロードを試み、今回はネットワークが正常だったことが原因である可能性があります。

誰かがこれを明確にできるといいですね:)

4

3 に答える 3

1

グラブ リゾルバー ( http://docs.groovy-lang.org/latest/html/api/groovy/lang/GrabResolver.html )を構成しようとしましたか? グレープのデフォルトのリゾルバーはわかりませんが、デフォルトのリゾルバーが機能しない可能性があります。

于 2014-10-25T14:10:28.307 に答える
1

私たちは、nexus をグレープ構成.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/* を削除しました - ジェンキンスを再起動しました

マイク

于 2017-12-18T15:37:52.177 に答える
0

依存関係が Grapes (およびおそらく他の同様のテクノロジ) で解決されている場合、依存関係が完全にダウンロードされるか、適切に構成される前に、いくつかのフラグが切り替えられることがあります。Maven と Gradle でも同様のことが起こりました。この問題は通常、.m2 または .gradle にキャッシュされたアーティファクトを吹き飛ばし、強制的に再度フェッチすることで解決されます。

于 2014-10-26T19:17:50.630 に答える