使用maven排除一些第三方jar
我正在使用maven使用maven排除一些第三方jar,maven,ear,Maven,Ear,我正在使用maveneartag构建一个ear。 声明的依赖项之一是将其可传递依赖项添加到生成的ear中。有没有办法在生成的ear中排除这一点 也就是说,我的EAR pom依赖于模块a,这在树的某个地方依赖于模块X,模块X被打包到生成的EAR中 有没有办法不在ear中包含此模块(模块X) 在我的pom中直接为模块X添加一个excludes标记不起作用。使用maven,一切都是可能的。您只需简单地在耳朵的pom中添加一个标签排除项,类似于: <dependency> <gr
ear
tag构建一个ear。
声明的依赖项之一是将其可传递依赖项添加到生成的ear中。有没有办法在生成的ear中排除这一点
也就是说,我的EAR pom依赖于模块a,这在树的某个地方依赖于模块X,模块X被打包到生成的EAR中
有没有办法不在ear中包含此模块(模块X)
在我的pom中直接为模块X添加一个
excludes
标记不起作用。使用maven,一切都是可能的。您只需简单地在耳朵的pom中添加一个标签排除项,类似于:
<dependency>
<groupId>my.group</groupId>
<artifactId>module_A</artifactId>
<exclusions>
<exclusion>
<groupId>my.group</groupId>
<artifactId>module_X</artifactId>
</exclusion>
</exclusions>
</dependency>
我的团队
模块A
我的团队
模块X
如果依赖项在父POM中的作用域为编译
,并且您需要在EAR中提供它,则您可以在需要更改其作用域的子POM中使用依赖项管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.group</groupId>
<artifactId>transitive-dependency</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
com.group
传递依赖
1
假如
如果父POM中声明的依赖项没有被其所有子项使用,您可能应该重新考虑是否应该在该父POM中声明该依赖项。或者它确实是一个依赖项,但您只是不想将它打包到EAR中,因为它是提供的?这个标记很有效,我在许多EAR项目中使用它。可能是因为另一个工件(也打包在模块_A中)需要模块_X进行编译,因此您也必须在其依赖项中排除它。它可以工作,我在指定要排除的模块的artifactId时犯了一个错误。(使用了xx_1.0.1而不是xx_1.0.2)。