【发布时间】:2018-05-07 15:57:41
【问题描述】:
我有一个 Maven Spring Boot Web 应用程序,其中包含很多(传递)依赖项。
在构建的.war 内的WEB-INF/lib 文件夹中有.jar 文件。
例如:
hibernate-jpa-2.1-api-1.0.0.Final.jarjavax.persistence-2.1.0.jar
这两个都包含一个名为 javax/persistence/JoinColumn.class 的类(具有不同的文件大小)。
在运行时,我在代码中使用哪个“版本”?
这种依赖会不会导致以后出现问题?
【问题讨论】:
-
是的,它们会导致问题(noclassdef、nosuchmethoderror 等)。你如何避免这种情况?您找到提供相同类的依赖项并选择一个,排除另一个。
-
@w9n7cxx5fM8 Java 在类路径中找到的第一个。这肯定会导致问题。你应该确定你正在使用的依赖版本
-
Spring Boot 的全部意义在于您不必担心依赖关系。您能否包含您的
pom.xml文件? -
@ErnestKiwele 我不能真正排除另一个,因为有些类仅在
.jars 之一中。 -
@w9n7cxx5fM8 如果我的答案足够,您介意将其标记为答案吗?
标签: java maven dependencies