2010-08-30 119 views
3

我想在我的ivysettings.xml文件來創建自定義解析:常春藤自定義網址解析

<ivysettings> 
    <settings defaultResolver="default"/> 
    <resolvers> 
     <chain name="default"> 
      <url name="scala-tools"> 
       <ivy pattern="http://scala-tools.org/repo-releases/[organisation]/[module]/[revision]/ivy-[revision].xml" /> 
       <artifact pattern="http://scala-tools.org/repo-releases/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/> 
       <artifact pattern="http://scala-tools.org/repo-releases/[organisation]/[module]/[revision]/[artifact].[ext]"/> 
      </url> 
      <!--<ibiblio name="ibiblio"/>--> 
     </chain> 
    </resolvers> 
</ivysettings> 

正如你所看到的,我只有一個UrlResolver將試圖找到我的依賴關係scala-tools repo。如果我指定我的依賴關係correctly比常春藤會嘗試找到它在http://scala-tools.org/repo-releases/org.scala-lang/scala-library/2.8.0/scala-library-2.8.0.jarhttp://scala-tools.org/repo-releases/org.scala-lang/scala-library/2.8.0/scala-library.jar(是的,根據我在ivysettings.xml的說明)顯然,它沒有找到任何東西。爲了獲得工作,我必須用這種方式指定依賴的東西:

<ivy-module version="2.2"> 
    <info organisation="org.yoba" module="Yoba"/> 
    <dependencies> 
     <dependency org="org/scala-lang" name="scala-library" rev="2.8.0"/> 
     <!--<dependency org="org.scala-lang" name="scala-library" rev="2.8.0"/>--> 
     <dependency org="org/scala-lang" name="scala-compiler" rev="2.8.0"/> 
     <!--<dependency org="org.scala-lang" name="scala-compiler" rev="2.8.0"/>--> 
    </dependencies> 
</ivy-module> 

問:如何改變人造物圖形/別的東西來強制常春藤使它的工作正確的方式?

1http://scala-tools.org/repo-releases/斯卡拉工具回購

回答

6

的ivy.xml

我檢查了POM斯卡拉編譯器,發現它引用模塊的Scala庫。這意味着只需要一個依賴性聲明中要求在ivy文件:

<ivy-module version="2.0"> 
    <info organisation="org.yoba" module="Yoba"/> 
    <dependencies> 
     <dependency org="org.scala-lang" name="scala-compiler" rev="2.8.0" conf="default"/> 
    </dependencies> 
</ivy-module> 
  • 版本號必須是「2.0」
  • 包括默認的映射,以避免下載可選依賴

ivysettings.xml

我建議在下載時使用ibiblio解析器來自任何符合Maven的存儲庫。

<ivysettings> 
    <settings defaultResolver="scalatools"/> 
    <resolvers> 
     <ibiblio name="scalatools" root="http://scala-tools.org/repo-releases" m2compatible="true"/> 
    </resolvers> 
</ivysettings> 

如果您需要下載其他庫的設置文件得以增強,從而使常春藤只檢索從斯卡拉庫斯卡拉模塊

<ivysettings> 
    <settings defaultResolver="central"/> 
    <resolvers> 
     <ibiblio name="central" m2compatible="true"/> 
     <ibiblio name="scalatools" root="http://scala-tools.org/repo-releases" m2compatible="true"/> 
    </resolvers> 
    <modules> 
     <module organisation="org.scala-lang" resolver="scalatools"/> 
    </modules> 
</ivysettings> 
+1

謝謝,對我的問題的答案可以在ibiblio上找到解析器描述:「使用m2compatible屬性,你可以受益於maven 2版本庫的兼容性(在組織中以斜線轉換圓點,搜索poms,使用poms的傳遞依賴)」 – Jeriho 2010-08-31 07:43:22