Ant 常春藤自定义url解析器

Ant 常春藤自定义url解析器,ant,build-process,dependencies,ivy,dependency-management,Ant,Build Process,Dependencies,Ivy,Dependency Management,我正在尝试在ivysettings.xml文件中创建自定义解析器: <ivysettings> <settings defaultResolver="default"/> <resolvers> <chain name="default"> <url name="scala-tools"> <ivy pattern="http://scala-

我正在尝试在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>

. 如果我指定了我的依赖项,ivy将尝试在中查找它(是的,根据我在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>

问:如何改变人工制品模式/其他东西来迫使常春藤以正确的方式完成它的工作


:scala工具repo

ivy.xml

我检查了scala编译器,发现它引用了模块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

我建议在从任何Maven兼容存储库下载时使用解析器

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

如果需要下载其他库,可以增强设置文件,以便ivy仅从scala存储库检索scala模块

<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>

谢谢,关于我的问题的答案可以在ibiblio解析器描述中找到:“使用m2compatible属性,您可以受益于maven 2存储库的兼容性(在斜线中转换组织中的点,搜索POM,使用POM的传递依赖项)”