【发布时间】:2016-09-30 19:40:08
【问题描述】:
我使用 Maven 开发和构建了我的 Java 应用程序。我需要支持 Java 1.6,所以我使用以下属性:
<maven.compiler.target>1.6</maven.compiler.target>
<maven.compiler.source>1.6</maven.compiler.source>
不过,当我运行应用程序时,我收到“Unsupported major.minor version”错误,我怀疑我的一个依赖 jar 是用比我需要支持的版本更新的 Java 版本编译的。
我的问题:
这可能吗?我以为 Maven 会处理这种依赖版本问题。
有没有一种简单的方法可以找出我所有依赖项的次要/主要版本? (例如,如果它可以在
mvn dependency:tree时显示出来,那就太棒了。)
【问题讨论】:
-
你能发布你的整个 maven 文件吗?
-
有一些我不想在 SO 上披露的东西,例如证书信息。但这里是相关部分的精简版:pastebin.com/BE7yDbSV
-
看来 Jersey 2.6 是在 java 6 中编译的最后一个版本。之后是 java 7。参考:jersey.java.net/documentation/latest/…
-
好的。我认为杰克逊也是一个问题。我也可以手动挖掘这些信息。不过,这并没有回答我的两个问题。
-
我发现 jackson 2.3 在 java 6 中的编译位置。我在 2.4 上找不到任何确定的东西。至于你的问题,1)maven 不会自动降级,你必须自己指定。 2)我不知道找出主要/次要版本依赖关系的好方法。但这并不意味着不存在。