当前位置:  开发笔记 > 编程语言 > 正文

War文件的Maven依赖项排除,但包含在测试中

如何解决《War文件的Maven依赖项排除,但包含在测试中》经验,为你挑选了1个好方法。

我有一个用于Web服务的maven POM文件.对于其中一个依赖项,我必须为已经保存在Web应用程序服务器中更高级别的jar文件指定几个排除项(所有Web应用程序都可以访问,而不仅仅是这个特定的应用程序).这种排除的一个例子是包含我的JDBC驱动程序的JAR.

示例(带有虚构的细节):


    mygroup
     myartifact
     1.0.0
     
         
         
             db.drivers
             jdbc
         
     
 

我遇到的问题是我的测试需要JDBC驱动程序.我的测试目前失败,因为他们无法加载JDBC驱动程序.

如何配置POM以便我的测试可以访问排除的部分,但是不能包含在我的WAR文件中?

更新:我无法更改mygroup.myartifact的POM,因为它依赖于许多其他项目,并且此排除要求对于我的项目是唯一的.

更新2:似乎我在描述这个问题方面表现不佳.下面的Lars解决方案非常适合一个排除(如示例所示),但在我的实际场景中,我有多个排除项,并且为每个排除项添加额外的依赖项似乎很臭.这似乎工作的解决方案是设置所示依赖性的范围,以编译,然后创建一个第二依赖同一工件(mygroup.myartifact),没有排除和设置为范围测试.由于拉尔斯都正确地回答了我的措辞问题,并且引导我朝着实际解决的方向发展,我将把他的回答标记为答案.



1> Lars Westerg..:

在依赖项中使用"scope"标记.

test

http://maven.apache.org/pom.html#Dependencies

编辑:如果我理解正确的配置,你需要添加范围=测试应在mygroup.myartifact POM添加.您可以测试与JDBC JAR该神器这样包括在内,但总是在其他POMS要包括mygroup.myartifact,他们没有得到包括作为传递依赖JDBC.

第二个编辑:好吧,如果你不控制要包括POM - 做一个像排斥你已经做了,然后添加JDBC作为一种新的依赖,范围=测试.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有