Maven" import"范围

时间:2015-07-24 13:12:44

标签: maven

我有该模块的模块和测试。 测试需要resteasy-client,但模块不行。 我不会混合模块依赖项和依赖项进行测试,我该怎么做?我试图使用maven' import'范围。 的的pom.xml:

Actor
本地nexus存储库中的

my-module-1.pom

Scene2D

我好像mvn看到了这个文件,但是编译失败了:

  

[ERROR] /home/xxx.java:[5,38]错误:包org.jboss.resteasy.client.jaxrs不存在   [ERROR] /home/xxx.java:[6,38]错误:包org.jboss.resteasy.client.jaxrs不存在   [错误] /home/xxx.java:[7,38]错误:包org.jboss.resteasy.client.jaxrs不存在

但是当我将这些dependensies复制粘贴到module-1的pom.xml中时,一切都很好!但我不想混合,快速变得难以理解。

2 个答案:

答案 0 :(得分:5)

这是因为import范围仅适用于<dependencyManagement>。 (在封面下它基本上只是粘贴导入的内容。)

因此,它可用于管理(设置)您可能使用的依赖项版本,但实际依赖于它们需要单独声明(在<dependencies>内)。

到目前为止,我发现实现目标的最佳方式(我得到它)是使用my-module-1-testing-support范围创建依赖于JUnit,Mockito等的compile模块。然后,您可以依赖my-module-1-testing-support使用test范围,并使用test范围获取其依赖性(传递性),如Introduction to the Dependency Mechanism所述。

答案 1 :(得分:0)

使用Apache描述的Bill of Materials pattern

(打开链接并搜索“BOM”)

  

项目的根源是BOM pom。它定义了所有版本   将在库中创建的工件。其他项目   希望使用该库应将此pom导入到   他们的pom的 dependencyManagement 部分。