【问题标题】:How are maven scopes mapped to ivy configurations by ivyMaven 范围如何通过 ivy 映射到 ivy 配置
【发布时间】:2011-10-29 13:57:44
【问题描述】:

Maven 存储库,例如 Maven Repository,提供最广泛的依赖管理项目。

Ivy 提供了访问 maven 存储库并从那里下载工件的可能性。这些存储库中只有 pom 文件,没有 ivy.xml。

可以使用ivy resolver that runs in m2compatible mode 检索它们。

<ibiblio name="maven2" m2compatible="true"/>

特别是对于我想知道的这个用例:

  • 默认情况下哪些范围可用以及它们将提供哪些工件
  • 如何将 maven 范围映射到 ivy conf/配置?

【问题讨论】:

  • 您想知道 pom 的外观或您希望实现什么?
  • 我想知道 Ivy 是如何解释 pom 文件的。
  • Ivy 不解释 pom 文件,因为它不使用 pom 文件。它将使用 ivy 配置文件。

标签: maven ivy


【解决方案1】:

以下两篇文章帮助我更好地理解 Maven 和 Ivy 是如何互操作的

奇怪的是,我从来没有真正理解 ivy 配置,直到它解释了如何使用它们来模拟 Maven 范围。

以下列表来自www.symphonious.net link,并说明了 pom-files/maven 存储库中的可用配置:

  • default 运行时依赖项和主工件可以与 本次会议
  • ma​​ster 仅包含此模块本身发布的工件, 没有传递依赖
  • compile 这是默认范围,如果未指定则使用。 编译依赖在所有类路径中都可用
  • 提供这很像编译,但表示您期望 JDK 或提供它的容器。它仅在编译类路径中可用,并且不可传递
  • runtime 这个范围表示不需要依赖 编译,但用于执行。它在运行时和测试中 类路径,但不是编译类路径
  • test 这个范围表示不需要依赖 应用正常使用,仅供测试使用 编译和执行阶段
  • system 这个范围类似于提供的,除了你必须 提供明确包含它的 JAR。
  • sources 此配置包含此的源工件 模块,如果有项目的来源
  • javadoc 此配置包含此的 javadoc 工件 模块(如果有项目的 JavaDoc)
  • 可选包含所有可选依赖项

【讨论】:

    猜你喜欢
    • 2012-08-29
    • 2012-11-21
    • 2012-10-06
    • 2010-12-07
    • 1970-01-01
    • 2013-05-10
    • 2023-03-17
    • 2023-03-10
    • 2014-05-30
    相关资源
    最近更新 更多