Maven 使用不同的组id解决依赖冲突?
内容冲突的工件:Maven 使用不同的组id解决依赖冲突?,maven,Maven,内容冲突的工件: org.javassist:javassist:jar:3.17.1-GA和&javassist:javassist:jar:3.12.1.GA 前者来自冬眠,后者来自番石榴。两者最终都会出现在最终的war文件中。问题是,由于组id不同,经典的冲突解决机制会失败。因此,这两个JAR最终都会出现在最终的项目交付成果中 我不能将Guava的依赖项排除在托管依赖项中,因为该项目是一个多模块的项目。有些模块使用Guava,不使用Hibernate。他们将错过javassist依赖项。但
org.javassist:javassist:jar:3.17.1-GA
和&javassist:javassist:jar:3.12.1.GA
前者来自冬眠,后者来自番石榴。两者最终都会出现在最终的war文件中。问题是,由于组id不同,经典的冲突解决机制会失败。因此,这两个JAR最终都会出现在最终的项目交付成果中
我不能将Guava的依赖项排除在托管依赖项中,因为该项目是一个多模块的项目。有些模块使用Guava,不使用Hibernate。他们将错过javassist依赖项。但如果我不这样做,“多余”工件将在项目的war文件中弹出
有没有办法告诉Maven这两个依赖项实际上是同一代码的两个不同版本?我坚持以下解决方案:
javassist
工件的显式依赖项(以便所有子模块都继承此依赖项)javassist
javassist
dependency:)我会将此工件的显式依赖项添加到项目的主pom.xml中,并将其从guava和hibernate中排除。@AndrewLogvinov为什么不发布一个答案?这个建议听起来不错。+1谢谢你在回答的第一行告诉我那些混蛋藏在哪里!:为什么我自己没有想到这一点?一定是头晕!谢谢!:-)这对我有帮助。另外,要注意javassist版本,尤其是在使用泛型时。我被困在我所遇到的问题中(用捷克语,但从附带的Java代码中可以明显看出)。