如何跳过解析Ivy中特定配置的依赖关系



我有以下问题:

我的项目(c++)依赖于一个系统库。为此,我在ivy.xml文件中在依赖项中定义了一个新的部分,如下所示:

<ivy-module version="2.0">
  <info organisation="org.acme" module="mymodule">
  <configurations>
    <conf name="system"/>
  </configurations>
  [...]
  <dependencies>
    <dependency name="pthread" rev="*" conf="system"/>
  </dependencies>
</ivy>

我面临的问题是Ivy试图在发布mymodule之前解决对pthread的依赖。

用于发布的命令如下:

java -jar ivy.jar -debug -ivy ivy.xml -publish publish -publishpattern "<ivy-pattern>" -status integration -revision 0.0.1-SNAPSHOT -settings ivysettings.xml -overwrite

我检查了Ivy文档,但找不到任何提示如何告诉Ivy跳过解析特定配置的依赖项。

你们中有谁能给点提示或建议如何配置它吗?

提前谢谢你。

更新:我设法通过使用以下依赖项标签来排除特定配置的依赖:

  <dependencies>
    <dependency name="pthread" rev="*" conf="system"/>
    <exclude conf="system"/>
  </dependencies>    

为了做到这一点,您必须提供发布任务所需的组织,模块和修订。原因是,如果没有提供这一点,publish将在最后解析的模块中查找它(检查属性的发布任务)。因此,当您调用publish task时,它将需要提供所有这些属性,或者事先调用解析任务。需要的属性有:

  • pubrevision
  • artifactspattern
  • 组织
  • <
  • 模块/gh>修订
  • srcivypattern

你可以查看链接,看看哪个是什么,即使它是不言自明的。

现在我不知道如何(或者如果)你可以传递所有这些参数调用ivy作为一个jar。也许可以使用这里列出的ivyfile。这就是为什么我给出了如何使用ant任务来完成它的答案-因为使用ant来使用ivy通常更干净,更容易:)

最新更新