无法获取常春藤来解决本地存储库中模块的传递依赖性

时间:2013-12-27 11:06:14

标签: ivy

我已经尝试了几天,并且根本无法获得apache ivy来解析我在ivy.xml中声明的依赖关系的依赖关系,当根依赖关系来自我的本地存储库时。来自我的公共存储库(maven)的root依赖项运行良好,甚至可以在我编辑其中一个ivy.xml以指向我本地存储库中的模块依赖时工作。但是我的本地存储库的传递依赖性解析将无法正常工作。 我检查了解析的ivy.xml,找到了缓存中我的一个本地模块,并且依赖部分已经被删除了! 我有什么需要做的吗?

这是我的ivysettings.xml文件:

<ivysettings>
  <settings defaultResolver="default"/>
  <caches useOrigin="true"/>
  <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
  <include file="${ivy.default.ivy.user.dir}/settings/ivysettings-local.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> 
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

这是我的ivysettings-local.xml文件:

<ivysettings>
  <property name="ivy.local.default.root"
        value="${ivy.default.ivy.user.dir}/local" override="false"/>
  <property name="ivy.local.default.ivy.pattern"
        value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
  <property name="ivy.local.default.artifact.pattern"
        value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
  <resolvers>
    <filesystem name="local">
      <artifact
        pattern="${ivy.local.default.root}/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]" />
    </filesystem>
  </resolvers>
</ivysettings>

1 个答案:

答案 0 :(得分:3)

如果您要创建自己的设置文件,那么让它列出您的所有结果(更简单的调试)。在这种情况下,我怀疑你的问题是你的文件系统解析器缺少一个“常春藤”标签,这可能解释了缺少的传递依赖。

尝试以下内容:

<ivysettings>
    <settings defaultResolver="chain"/>
    <resolvers>
        <chain name="chain">
            <ibiblio name="central" m2compatible="true"/>
            <filesystem name="local">
                <ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/ivys/ivy-[revision].xml"/>
                <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
            </filesystem>
        </chain>
    </resolvers>
</ivysettings>

正如您所看到的,链式解析器包括Maven Central和本地存储库。以下示例进一步演示了如何使用“模块”指令将ivy引导到依赖于依赖项的特定存储库: