我有一个Web应用程序,其中依赖项引入了两个JAR文件:
- javassist-3.9.0.GA.jar
- javassist-3.20.0-GA.jar
当我打包WAR文件时,这两个文件都在WEB-INF/lib目录中,我的问题是应用程序正在运行,为什么我不会遇到任何问题,因为显然我在两个JAR文件中拥有相同的类,所以应该会出现问题,对吗?
我有一个Web应用程序,其中依赖项引入了两个JAR文件:
当我打包WAR文件时,这两个文件都在WEB-INF/lib目录中,我的问题是应用程序正在运行,为什么我不会遇到任何问题,因为显然我在两个JAR文件中拥有相同的类,所以应该会出现问题,对吗?
针对“有什么建议如何修复它?”的问题,可以查看使用依赖树解决冲突。通过命令mvn dependency:tree
,您可以知道任何依赖项来自哪里。当您知道哪些工件取决于javassist时,您可以添加一个排除条目以避免其中一个javassist版本。
war
中真的有两个相同版本的构件,那么您正在做一些错误的事情...使用默认的Maven和maven-war-plugin,您的lib文件夹中不应该有重复的jar文件...(这听起来像是您手动操作了一些本应由Maven完成的任务)... - khmarbaisepackage
不是一个目标,而是一个生命周期。如果您在pom文件中设置了正确的<packaging>war</packaging>
,那么这应该可以直接使用...最好查看您正在使用的pom文件。 - khmarbaise