Maven Can';不能针对不同的java版本进行编译
我有一个多模块maven项目。我对它的一个示例进行了Maven Can';不能针对不同的java版本进行编译,maven,compilation,version,java-7,Maven,Compilation,Version,Java 7,我有一个多模块maven项目。我对它的一个示例进行了mvn清理安装,该示例下载并安装了一些依赖项 如果我在Maven下载和编译的WEB-INF/lib中的某些JAR中执行$文件WhateverClass.class,我会不断得到 WhateverClass.class: compiled Java class data, version 51.0 这意味着这个类是用Java7编译的 不管我自己编译那个模块多少次,我都会得到这个!为什么? 在我看到目标文件夹是如何生成的之后,我还检查了模块本身的
mvn清理安装
,该示例下载并安装了一些依赖项
如果我在Maven下载和编译的WEB-INF/lib中的某些JAR中执行$文件WhateverClass.class
,我会不断得到
WhateverClass.class: compiled Java class data, version 51.0
这意味着这个类是用Java7编译的
不管我自己编译那个模块多少次,我都会得到这个!为什么?
在我看到目标文件夹是如何生成的之后,我还检查了模块本身的.class文件
在项目中,一些POM.xml
指定了
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
和javac版本:
javac 1.6.0_23
编辑
这是我的当你遇到这样的问题时,试着找出问题所在。第一步是沿着JAR的路径向后走:您在哪里找到了这个类?那个罐子是从哪里来的?如果它来自一场战争,那它来自哪里?执行此操作,直到找到编译
.class
文件的计算机。检查JAR和target/classes/
文件夹中的.class
文件
在每一步中,在WhateverClass.class
上运行file
,当您看到Java7时,再进一步
找到生成计算机后,可以使用以下选项调试生成过程:
显示Maven和Java的版本mvn-v
显示已解析的pom(即,在包含每个父pom之后,解析所有属性,您可以命名它)。哪个mvn帮助:effective pom
选项处于活动状态target
- 使用
运行-X
,以获得调试输出。这有助于查看Maven将哪些选项传递给分叉进程mvn
javac 1.6.0_23