maven每个版本都有匹配的jdk,当运行不同的goal且该goal需要使用jdk的时候就使用默认的jdk,但从maven2.0版本之后,可以指定使用特定的jdk版本,这是通过maven的toolchain来实现的,可以在toolchain配置文件中指定多个jdk版本,然后在pom.xml文件中指定需要的jdk就可以实现了。但前提是该goal对应的plugin可以识别toolchain,这里的识别就是运行插件的时候会检测toolchain中是否有特定的jdk版本,目前有部分插件支持,官网上有介绍http://maven.apache.org/guides/mini/guide-using-toolchains.html

实现以上功能需要如下2点:

1、在项目pom.xml中配置maven-toolchains-plugin插件

2、在.m2/repository下设置toolchains.xml配置文件

maven-toolchains-plugin插件用于指定本次运行使用指定的jdk版本,如下配置:

  1.    org.apache.maven.plugins

  2.    maven-toolchains-plugin

  3.    1.1

  4.    

  5.      

  6.        

  7.          toolchain

  8.        

  9.      

  10.    

  11.    

  12.      

  13.        

  14.          1.5

  15.          sun

  16.        

  17.      

  18.    

  19.  


maven-toolchains-plugin插件运行的时候会读取toolchains.xml文件,然后找到文件中匹配的jdk版本,同时设置本次MavenSession使用该jdk版本,如此配置之后,当运行其他可以识别toolchain的插件之后就会使用该特定版本的jdk了。

toolchains.xml的配置如下:

  1. xml version="1.0" encoding="UTF8"?>

  2.  

  3.  

  4.    jdk

  5.    

  6.      1.5

  7.      sun

  8.    

  9.    

  10.      /path/to/jdk/1.5

  11.    

  12.  

  13.  

  14.    jdk

  15.    

  16.      1.6

  17.      sun

  18.    

  19.    

  20.      /path/to/jdk/1.6

  21.    

  22.  

  23.  

  24.  

  25.  

  26.    netbeans

  27.    

  28.      5.5

  29.    

  30.    

  31.      /path/to/netbeans/5.5

  32.    

  33.