我有一个用于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),没有排除和设置为范围测试.由于拉尔斯都正确地回答了我的措辞问题,并且引导我朝着实际解决的方向发展,我将把他的回答标记为答案.
在依赖项中使用"scope"标记.
test
http://maven.apache.org/pom.html#Dependencies
编辑:如果我理解正确的配置,你需要添加范围=测试应在mygroup.myartifact POM添加.您可以测试与JDBC JAR该神器这样包括在内,但总是在其他POMS要包括mygroup.myartifact,他们没有得到包括作为传递依赖JDBC.
第二个编辑:好吧,如果你不控制要包括POM - 做一个像排斥你已经做了,然后添加JDBC作为一种新的依赖,范围=测试.