使用maven的toolchain

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. <plugin>

  2.    <groupId>org.apache.maven.plugins</groupId>

  3.    <artifactId>maven-toolchains-plugin</artifactId>

  4.    <version>1.1</version>

  5.    <executions>

  6.      <execution>

  7.        <goals>

  8.          <goal>toolchain</goal>

  9.        </goals>

  10.      </execution>

  11.    </executions>

  12.    <configuration>

  13.      <toolchains>

  14.        <jdk>

  15.          <version>1.5</version>

  16.          <vendor>sun</vendor>

  17.        </jdk>

  18.      </toolchains>

  19.    </configuration>

  20.  </plugin>


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

toolchains.xml的配置如下:

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

  2. <toolchains>

  3.  <!-- JDK toolchains -->

  4.  <toolchain>

  5.    <type>jdk</type>

  6.    <provides>

  7.      <version>1.5</version>

  8.      <vendor>sun</vendor>

  9.    </provides>

  10.    <configuration>

  11.      <jdkHome>/path/to/jdk/1.5</jdkHome>

  12.    </configuration>

  13.  </toolchain>

  14.  <toolchain>

  15.    <type>jdk</type>

  16.    <provides>

  17.      <version>1.6</version>

  18.      <vendor>sun</vendor>

  19.    </provides>

  20.    <configuration>

  21.      <jdkHome>/path/to/jdk/1.6</jdkHome>

  22.    </configuration>

  23.  </toolchain>

  24.  

  25.  <!-- other toolchains -->

  26.  <toolchain>

  27.    <type>netbeans</type>

  28.    <provides>

  29.      <version>5.5</version>

  30.    </provides>

  31.    <configuration>

  32.      <installDir>/path/to/netbeans/5.5</installDir>

  33.    </configuration>

  34.  </toolchain>

  35. </toolchains>


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