maven——高版本打低版本jar包

    今天测试那边来一个诡异的要求,要我们打一个jdk1.6的包,然后我就去装了一个jdk1.6,一打报错,报错信息的意思是,maven3.3.1以后必须要jdk1.7的版本,我一看自己的maven是3.6的,指定不行了。那只能去下maven3.3.1以前的版本了,然后打开maven的官网,在下载界面有这么一段:
maven——高版本打低版本jar包_第1张图片
网官网上指明了高版本maven不支持低版本的jdk,但是提供了另一种方式:Toolchains,能够实现在高版本的jdk和maven下打低版本的jar包,然后我跟着实施了一遍,成功了,以下是解决过程:

  1. 创建一个toolchains.xml配置文件,内容如下,jdkHome就是我们前面安装了的jd1.6的位置,所以其实你还是要下载老版本的jdk,但是maven使用的jdk版本要是1.7以上的。

<toolchains>

  <toolchain>
    <type>jdktype>
    <provides>
      <version>1.6version>
      <vendor>sunvendor>
    provides>
    <configuration>
      <jdkHome>D:\JDK6\JDKjdkHome>
    configuration>
  toolchain>
 

toolchains>

这个文件可以放在任意位置,因为maven打包的时候,可以指定这文件的路径。

  1. 在要打包的项目模块的pom中添加一个插件:
            <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。

  1. 之后就是执行maven打包命令了
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只是看打包的详细日志。

你可能感兴趣的:(java相关,java,maven,jdk)