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、在${maven_home}/conf/
     
      
       toolchains.xml
      
     
     文件中可以配置多个jdk版本。
    
   
    
     
    
   
    
     maven-toolchains-plugin插件用于指定本次运行使用指定的jdk版本,如下配置:
    
   
    
    
   
<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.7</version>
				<vendor>sun</vendor>
			</jdk>
		</toolchains>
	</configuration>
</plugin>maven-toolchains-plugin插件运行的时候会读取toolchains.xml文件,然后找到文件中匹配的jdk版本,同时设置本次MavenSession使用该jdk版本,如此配置之后,当运行其他可以识别toolchain的插件之后就会使用该特定版本的jdk了。
    
     
      
       toolchains.xml
      
     
     
     
     的配置如下:
     
    
   
    
    
   
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <!-- JDK toolchains -->
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.5</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
      <jdkHome>/path/to/jdk/1.5</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.6</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
      <jdkHome>/path/to/jdk/1.6</jdkHome>
    </configuration>
  </toolchain>
 
  <!-- other toolchains -->
  <toolchain>
    <type>netbeans</type>
    <provides>
      <version>5.5</version>
    </provides>
    <configuration>
      <installDir>/path/to/netbeans/5.5</installDir>
    </configuration>
  </toolchain>
</toolchains>
    
     
      
       转载文章
      
      
       http://1730634.blog.51cto.com/1720634/1692883
      
     
     
    
   
    
     
    
   
    
     
    
   
    
     
    
   
 
