我有该模块的模块和测试。 测试需要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中时,一切都很好!但我不想混合,快速变得难以理解。
答案 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 部分。