如何排除使用intelliJ通过Maven安装的依赖性?

时间:2018-12-28 17:16:33

标签: java maven dependencies pom.xml

我目前已经创建了一个Maven项目,并找到了一个重复的依赖项,这会影响我的代码无法按预期执行。

我有两个依赖项: json模式验证器 javax.mail

经过进一步调查,似乎json-schema-validator依赖项也下载了javax邮件jar文件,有没有办法从也下载与javax.mail相关的依赖项中排除json-schema-validator?

到目前为止,我已经设置了以下似乎无效的方法: enter image description here

enter image description here

从图像中可以看到,我试图排除依赖关系,但通过在pom.xml文件中使用排除规则却没有运气。

也请注意,以下排除似乎无效:

  <exclusion>
           <groupId>javax.mail</groupId>
           <artifactId>mail</artifactId>
       </exclusion>

2 个答案:

答案 0 :(得分:0)

这里有些误解:

  • 您不需要排除“重复”依赖项。 Maven不会将它们两次添加到类路径。不过,您需要注意版本号。如果您的依赖关系树中出现相同工件的不同版本,则Maven选择其中之一。如果您对选择不满意,可以用<dependencyManagement>覆盖它。

  • 如果您编写排除项(在这里可能不需要),则需要填写正确的groupId和artifactId。如果您尝试排除带有artifactId javax.mail的artifacs,那么毫无疑问mailapi仍然存在。

答案 1 :(得分:-1)

添加以下排除项解决了我的问题:

       <dependency>
           <groupId>com.github.fge</groupId>
           <artifactId>json-schema-validator</artifactId>
           <version>2.2.6</version>
           <exclusions>
               <exclusion>
                   <groupId>javax.mail</groupId>
                   <artifactId>mailapi</artifactId>
               </exclusion>
           </exclusions>
       </dependency>