【发布时间】:2012-11-09 03:27:10
【问题描述】:
我按照入门指南设置了一个项目。我必须使用常春藤。这些是我的依赖项:
<dependencies>
<dependency org="org.jboss.spec" name="jboss-javaee-all-6.0" rev="3.0.1.Final" conf="build->default" />
<dependency org="org.jboss.arquillian.junit" name="arquillian-junit-container" rev="1.0.3.Final" conf="test->default(*)" transitive="true"/>
<dependency org="org.jboss.arquillian.junit" name="arquillian-junit-core" rev="1.0.3.Final" conf="test->default(*)" transitive="true"/>
<dependency org="org.jboss.weld.arquillian.container" name="arquillian-weld-ee-embedded-1.1" rev="1.1.2.Final" conf="test->default(*)" />
<dependency org="org.jboss.weld" name="weld-core" rev="1.1.10.Final" conf="test->default(*)" />
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.6.4" conf="test->default(*)" />
</dependencies>
问题:虽然我映射到“*”,但 deps 并没有传递传递。我必须手动添加每个罐子,就因为我被常春藤困住了吗?还是我错过了什么?
澄清:
我使用映射“myconf->default()”transitive="true"。 我这样读到:“获取依赖项的默认配置并将其映射到“myconf”。():如果依赖项不提供“默认”,则使用它提供的每个配置。所有这些都应该是done 传递,意味着每个子依赖也将被映射。
但我得到的是:只有指定的罐子,以及运行测试时的大量 CNFE。 我读到了 maven 项目中引用的 arquillian-container pom,我开始担心没有适用于 ivy 和 arquillian 的“开箱即用”依赖映射机制。如果有人可以确认这一点或提供我可以使用的工作(最佳:测试)依赖项配置,我很高兴。非常感谢!
【问题讨论】:
-
我认为这不会被误解,但仍然:我知道常春藤中的配置机制,我刚刚发布了我的依赖项块,因为我映射我的部门对于这个问题并不重要,但是我从哪里得到它们...我没有正确传递,我认为这是由于 JBoss 人员使用的一些非常 maven 特定的 POM 配置...
-
我通常从不使用传递选项,因为 Maven 模块 on 可以映射到远程“默认”或“主”配置来启用和禁用传递依赖项。第二个可能的混淆是您映射配置的方式:“test->default(*)”。在 Maven 模块的上下文中,您不需要括号语法。通常所有的常春藤模块都会有一个“默认”配置。总之,我认为您需要准确说明缺少哪些传递依赖项
标签: ant junit ivy jboss-arquillian weld