如何在不强制其他依赖项定义配置的情况下排除某些依赖项

时间:2011-09-09 21:39:28

标签: ivy

我们的引导过程使用常春藤conf来提供构建工具和一些工具(ant libs)。我们的默认配置应该提供编译和运行时依赖性。

我想conf =“bootstrap”只提供线束,我希望开发人员能够在不需要与配置搏斗的情况下添加deps。

我最初尝试创建一个默认配置,但这需要依赖性,这不是我想要的。

我尝试了 default =“default-> *”,但我的引导程序默认包含在内。

如何在不对依赖项强加要求或强制将 conf =“default-> *”添加到我的所有“默认”依赖项中的情况下,将这两者分开?

  <configurations default="default">
    <conf name="bootstrap" visibility="private" description="Scripts/Tools for Build Sys"/>
    <conf name="default" description="Dependencies Used By This Module"/>
  </configurations>

  <dependencies>
    <dependency conf="bootstrap->default" org="myorg" name="build-harness" rev="1.+"/>
    <dependency org="myorg" name="logging" rev="1.0.0.+"/> 
  </dependencies>

如果我定义了一个配置,那么我的所有deps也需要这样做吗?有没有办法设置默认映射?

            

感谢您的帮助

彼得

1 个答案:

答案 0 :(得分:1)

我相信这就是我想要的:

  • 将默认配置映射设置为包含默认
  • 中的任何dep配置
  • 添加默认和私有引导程序配置
  • 将我的构建线束添加为'bootstrap'并将其链接到线束默认值 - 因为线束缺少用户定义的conf default ='*'

当我没有配置检索时,我得到默认值,这是所有编译/运行时依赖项。当我检索'bootstrap'conf时,我就得到了引导程序。

  <configurations defaultconfmapping="default->*">
    <conf name="bootstrap" visibility="private" description="Scripts/Tools for Build Sys"/>
    <conf name="default" description="Dependencies Used By This Module"/>
  </configurations>

  <dependencies>
    <dependency conf="bootstrap->default" org="myorg" name="build-harness" rev="1.+"/>
    <dependency org="myorg" name="logging" rev="1.0.0.+"/> 
  </dependencies>