【问题标题】:How to skip resolving dependencies of a specific configuration in Ivy?如何跳过解决 Ivy 中特定配置的依赖关系?
【发布时间】:2017-03-08 11:51:54
【问题描述】:

我有以下问题:

我的项目 (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>    

【问题讨论】:

  • 可以发一下用来做发布的ant脚本吗?
  • 我正在使用 ivy.jar 发布组件。如果您需要 ivysettings.xml 和 ivy.xml 的完整示例,请告诉我

标签: c++ configuration dependencies ivy


【解决方案1】:

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

  • 发布版本
  • artifactspattern
  • 组织
  • 模块
  • 修订
  • srcivy模式

您可以查看链接以查看哪个是什么,甚至认为它非常不言自明。

现在我不知道在将 ivy 作为 jar 调用时如何(或根本不知道)您不能传递所有这些参数。也许使用ivyfile 列出的here。这就是为什么我给出了如何使用 ant task 的答案 - 好吧,因为它通常更清洁,更容易将 ivy 与 ant 一起使用:)

【讨论】:

    猜你喜欢
    • 2013-02-14
    • 2015-06-04
    • 2012-12-24
    • 2011-12-11
    • 2014-09-19
    • 2016-01-06
    • 2013-02-11
    • 1970-01-01
    • 2016-10-11
    相关资源
    最近更新 更多