高版本maven打低版本jar包

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

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

  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.6</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
      <jdkHome>D:\JDK6\JDK</jdkHome>
    </configuration>
  </toolchain>
 

</toolchains>

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

  1. 在要打包的项目模块的pom中添加一个插件:
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-toolchains-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>toolchain</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <toolchains>
                        <jdk>
                            <version>1.6</version>
                            <vendor>sun</vendor>
                        </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只是看打包的详细日志。

猜你喜欢

转载自blog.csdn.net/qq_30095631/article/details/105574237
今日推荐