Maven的范围如何通过Ivy映射到Ivy配置

31

Maven Repository这样的Maven仓库提供了最广泛的项目依赖管理。

Ivy提供了访问Maven仓库并从中下载构件的可能性。这些仓库中只有pom文件,没有ivy.xml。

它们可以使用在m2compatible模式下运行的ivy解析器检索。

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

特别是针对这种用例,我想知道:

  • 默认提供哪些范围以及它们将提供哪些构件
  • 如何将Maven的范围映射到Ivy的配置/配置?

你想知道一个pom长什么样子,还是想要实现什么? - khmarbaise
我想知道Ivy如何解释pom文件。 - oers
Ivy不解释pom文件,因为它不使用pom文件。它将使用Ivy配置文件。 - khmarbaise
1个回答

62
以下两篇文章帮助我更好地理解Maven和Ivy之间的互操作性: 奇怪的是,我从未真正理解过ivy配置,直到有人解释了它们如何用于模拟Maven范围。
以下列表来自www.symphonious.net链接,说明了从pom文件/Maven存储库中可用的配置:
  • default 可以与此conf一起使用的运行时依赖项和主要工件/li>
  • master 仅包含由该模块本身发布的工件,没有传递依赖关系
  • compile 这是默认范围,如果未指定,则使用。编译依赖项在所有类路径中都可用
  • provided 这非常类似于编译,但表示您希望JDK或容器提供它。它仅在编译类路径上可用,并且不是传递性的
  • runtime 此范围表示该依赖项不需要用于编译,但需要用于执行。它在运行时和测试类路径中,但不在编译类路径中
  • test 此范围表示该依赖项不需要用于应用程序的正常使用,仅在测试编译和执行阶段可用
  • system 此范围类似于provided,但您必须明确提供包含它的JAR。
  • 源码:如果有的话,该配置包含此模块的源代码构件。项目的源码。
  • javadoc:如果有的话,该配置包含此模块的javadoc构件。项目的JavaDoc文档。
  • 可选依赖:包含所有可选依赖项。

  • 网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接