今天测试那边来一个诡异的要求,要我们打一个jdk1.6的包,然后我就去装了一个jdk1.6,一打报错,报错信息的意思是,maven3.3.1以后必须要jdk1.7的版本,我一看自己的maven是3.6的,指定不行了。那只能去下maven3.3.1以前的版本了,然后打开maven的官网,在下载界面有这么一段:
网官网上指明了高版本maven不支持低版本的jdk,但是提供了另一种方式:Toolchains,能够实现在高版本的jdk和maven下打低版本的jar包,然后我跟着实施了一遍,成功了,以下是解决过程:
<toolchains>
<toolchain>
<type>jdktype>
<provides>
<version>1.6version>
<vendor>sunvendor>
provides>
<configuration>
<jdkHome>D:\JDK6\JDKjdkHome>
configuration>
toolchain>
toolchains>
这个文件可以放在任意位置,因为maven打包的时候,可以指定这文件的路径。
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-toolchains-pluginartifactId>
<version>1.1version>
<executions>
<execution>
<goals>
<goal>toolchaingoal>
goals>
execution>
executions>
<configuration>
<toolchains>
<jdk>
<version>1.6version>
<vendor>sunvendor>
jdk>
toolchains>
configuration>
plugin>
里面的jdk节点中的version和vendor要和我们toolchains.xml中的保持一致,否则无法定位到使用的是哪一个jdk。
mvn clean package --global-toolchains D:\Maven\apache-maven-3.6.0-bin\apache-maven-3.6.0\conf\toolchains.xml -X
其中–global-toolchains D:\Maven\apache-maven-3.6.0-bin\apache-maven-3.6.0\conf\toolchains.xml就是用来指定toolchains.xml文件路径用的。-X只是看打包的详细日志。