背景:
项目中自定义了一些二方库,需要把一些工程编译成jar,给其他项目或者工程做为依赖引入。
由于自己的项目使用的是JDK1.8, 而使用方是一个比较老的项目,使用的是JDK 1.6。我用JDK1.8编译出的项目,他无法使用
也就衍生出了这个问题,如何用maven + JDK 1.6编译这个工程
1. 先安装jdk
自行安装
2. 安装maven
这里需要注意下,maven也是java写的,也是编译成class类、jar的,和jdk也是有版本对应关系的
3.3
版本以上对应的是JDK 1.7
3.2
版本对应的是JDK1.6
3.1
版本对应的是JDK1.5
参考 Maven和JDK版本对应关系
自行下载对应版本的maven
3. 设置maven的setting文件
到maven安装目录的conf目录下,打开setting.xml
文件,找到<profiles></profiles>
标签,插入如下内容
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
4. 编译文件
打开windows的cmd命令窗口,
跳转到要编译的工程目录下cd E:/java/target/project
然后开始编译E:/maven/dir/bin/mvn clean package
这里的意思就是,输入maven的全路径+mvn命令,然后在项目有pom文件的目录,执行maven命令就可以了
5. 如何看编辑的class是什么版本的
这里借助vscode工具。 先下载一个vscode,然后在插件里安装hexdump for vscode
然后用压缩工具打开编译完的jar包,将里边的class文件copy出来,然后用vscode打开
会提示是二进制文件,接着打开会显示乱码
右键,然后show Hexdump
然后看这个关键位置
6. jdk版本号对并表
数字 | 版本号 |
---|---|
34(对应十进制的50) | JDK1.8 |
33(对应十进制的50) | JDK1.7 |
32(对应十进制的50) | JDK1.6 |
31(对应十进制的49) | JDK1.5 |
30(对应十进制的48) | JDK1.4 |
2F(对应十进制的47) | JDK1.3 |
2E(对应十进制的46) | JDK1.2 |