我有以下问题:
我的项目(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通常更干净,更容易:)