无法让 ivy 解决本地存储库中模块的传递依赖关系

  • 本文关键字:模块 关系 依赖 存储 ivy 解决 ivy
  • 更新时间 :
  • 英文 :


几天来,我一直在尝试但只是未能让 apache ivy 解决我在 ivy .xml 中声明的依赖项的依赖项,当根依赖项来自我的本地存储库时。来自我的公共仓库 (maven) 的根依赖项运行良好,甚至在我编辑其中一个常春藤时也能工作.xml指向对本地仓库中模块的依赖。但是我的本地存储库的传递依赖项解析将不起作用。我检查了解析的常春藤.xml缓存中的一个本地模块,依赖项部分已被清除!有什么我必须做的吗?

这是我的常春藤设置.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>

这是我的常春藤本地.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>

如果您要创建自己的设置文件,请让它列出所有解决方法(调试起来要简单得多)。在这种情况下,我怀疑您的问题是您的文件系统解析器缺少"ivy"标签,该标签可能会解释缺少传递依赖项。

尝试如下操作:

<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和本地存储库。以下示例进一步演示了如何使用"module"指令将 ivy 引导至依赖于依赖项的特定存储库:

  • 将公共 maven 存储库与 ivy 一起使用

最新更新