我目前已经创建了一个Maven项目,并找到了一个重复的依赖项,这会影响我的代码无法按预期执行。
我有两个依赖项: json模式验证器 javax.mail
经过进一步调查,似乎json-schema-validator依赖项也下载了javax邮件jar文件,有没有办法从也下载与javax.mail相关的依赖项中排除json-schema-validator?
从图像中可以看到,我试图排除依赖关系,但通过在pom.xml文件中使用排除规则却没有运气。
也请注意,以下排除似乎无效:
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
答案 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>