2012-02-21 11 views
0

持っていません。Eclipseのアイビープラグインは、JRubyの未解決の依存関係を持っていると言いますが、JRubyの1.6.6は、私はツタEclipseプラグインを使用して依存関係としてはJRubyを追加しようとしたとき、私はこのエラーを取得しています任意の

Impossible to resolve dependencies of com.restphone#;[email protected] 
unresolved dependency: org.jruby.extras#bytelist;1.0.8: not found 

これは私のivy.xmlである:

<dependency org="org.jruby" 
    name="jruby-complete" 
    rev="1.6.6" /> 

そして、これはivysettings.xmlである:

<ivysettings> 
    <settings defaultResolver="chain"/> 
    <resolvers> 
     <chain name="chain"> 
      <ibiblio name="codehaus" m2compatible="true" root="http://repository.codehaus.org/"/> 
     </chain> 
    </resolvers> 
</ivysettings> 

しかしJRUに従ってメーリングリスト、jruby has NO dependencies for runtime, compile or test scope

ivyプラグインの詳細情報をどこかに与える必要がありますか?

答えて

1

私の意見では、依存関係の構成マッピングを指定することをお勧めします。

以下のivyファイルが問題なく機能しました。説明したように、ルビージャーだけがダウンロードされました。

<ivy-module version="2.0"> 
    <info organisation="org.demo" module="demo"/> 
    <configurations> 
     <conf name="compile"/> 
     <conf name="runtime" extends="compile"/> 
     <conf name="test" extends="runtime"/> 
    </configurations> 
    <dependencies> 
     <dependency org="org.jruby" name="jruby-complete" rev="1.6.6" conf="compile->default"/> 
    </dependencies> 
</ivy-module> 

ここでは、ローカルの「コンパイル」構成をデフォルトのリモート構成にマップしました。 (Mavenモジュールでは、デフォルトのivy設定が "コンパイル"スコープに変換されます)。


私はremote POM fileに掘っ:

<properties> 
    <jar.scope>provided</jar.scope> 
    .. 
    .. 

    <dependency> 
     <groupId>org.jruby.joni</groupId> 
     <artifactId>joni</artifactId> 
     <scope>${jar.scope}</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jruby.extras</groupId> 
     <artifactId>jnr-netdb</artifactId> 
     <scope>${jar.scope}</scope> 
    </dependency> 
    ... 

をすべての余分なdepedenciesは "提供" Mavenのスコープで宣言されています。問題の

カップル:設け範囲を瓶に使用されるのMavenで

1) そのモジュールをコンパイルするために必要とされます。ターゲットランタイム環境の一部であるため、パッケージ化する必要はありません。同様に、そのような依存関係はモジュールの推移的な依存関係としては必要ないので、ダウンロードする必要はありません。

2) すべてのJARファイルはすべてMaven Centralリポジトリにあります。あなたはアイビー・コンフィギュレーション・マッピング

<ivysettings> 
    <property name="ivy.checksums" value=""/> 
    <settings defaultResolver="chain"/> 
    <resolvers> 
     <chain name="chain"> 
      <ibiblio name="central" m2compatible="true"/> 
     </chain> 
    </resolvers> 
</ivysettings> 

3を省略することを選択した場合、以下の設定ファイルには、すべてを取得します) 次のエラーがジャンクチェックサムによって引き起こされます。私の提供された設定ファイルはこのチェックを無効にします...あなたは、リモートリポジトリ上

[ivy:resolve] :::: WARNINGS 
[ivy:resolve] problem while downloading module descriptor: http://repo1.maven.org/maven2/org/jruby/extras/bytelist/1.0.8/bytelist-1.0.8.pom: invalid sha1: expected=e40ee094403473e43f71e21cf9cbf71f08d2098b computed=a9627bc7e42f886e290985367040794adb676320 (977ms) 
[ivy:resolve]  module not found: org.jruby.extras#bytelist;1.0.8 
+0

ありがとう、私はjrubyメーリングリストにこの情報を載せました。 –

1

JRubyのドキュメントは、必要な依存関係を述べるないかもしれないが、それはあなたが使用しているリポジトリが...

あなたは「JRubyの-完了」を求めてきたんかのように、あなたが行けば見て、見てこのPOMを見ると、jrubyのエクストラが指定されています。

1つの選択肢は、あなたの依存関係の基礎として別のPOMファイルを選択することですが、あなたの依存関係に属性transitive = "false"を追加するのが簡単です。

<dependency org="org.jruby" 
    name="jruby-complete" 
    transitive="false" 
    rev="1.6.6" /> 
+0

をしないことをお勧めしている何かがhttp://repository.codehaus.org/org/jruby/jruby-complete/から org.jruby.extrasセクションではないです1.6.6/jruby-complete-1.6.6.pom jar自体がjruby-extrasを提供することを指定していますか? –

関連する問題