2010-08-30 140 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