2012-02-21 46 views
0

我得到這個錯誤,當我嘗試使用常春藤Eclipse插件JRuby中添加作爲一個依賴:的Eclipse插件常春藤說JRuby中有一個未解決的依賴,但JRuby的1.6.6沒有任何

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

我需要給某個地方的常青藤插件更多的信息嗎?

回答

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的範圍被宣佈。

幾個問題:

1) 在Maven中所提供的範圍是用於罐所需要用於編譯模塊。它們不需要打包,因爲它們是目標運行時環境的一部分。類似的,這樣的依賴不需要作爲你的模塊的傳遞依賴,因此不需要下載。

2) 所有的瓶子都位於Maven中央存儲庫中。下面的設置文件將檢索的一切,如果你選擇了忽略常春藤配置映射

<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郵件列表中。 – 2012-02-28 05:22:21

1

雖然JRuby的文檔可能不在狀態所需的相關項,它看起來好像庫您正在使用不...

你問「JRuby的完整的」,如果你去看看這個POM你會看到它指定的jruby演員。

一種選擇是選擇一個不同的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? – 2012-02-22 19:07:15

相關問題