使用工具链指南
什么是工具链?
Maven 工具链提供了一种当他们构建的时候需要时候插件发现使用jdk(或者别的工具),而不需要配置他们在每一个pom.xml中,或者强制给出精确的路径在每个构建的机器上。
有了maven工具链申请JDK工具链,一个项目可以在构建的时候被指定一个版本的jdk依赖maven正使用的JDK。想一想JDK能怎么设置到IDE类似IDEA,NetBean和eclipse,或者你能怎么从Maven构建使用的JDK中使用老的JDK编译。
先决条件
工具链只能在Maven 2.0.9或者更高的版本使用。想知道更多设计和实现的,请看工具链 下面是一些插件是工具的意图,使用的工具类型:
Toolchain type | Plugin | Starting with | Hosted at |
---|---|---|---|
jdk | maven-compiler-plugin | 2.1 | Apache Maven |
jdk | maven-jarsigner-plugin | 1.3 | Apache Maven |
jdk | maven-javadoc-plugin | 2.5 | Apache Maven |
jdk | maven-surefire-plugin | 2.5 | Apache Maven |
jdk | animal-sniffer-maven-plugin | 1.3 | Codehaus Mojo |
jdk | cassandra-maven-plugin | 0.7.0-1 | Codehaus Mojo |
jdk | exec-maven-plugin | 1.1.1 | Codehaus Mojo |
jdk | jdiff-maven-plugin | 1.0-beta-1-SNAPSHOT | Codehaus Mojo |
jdk | keytool-maven-plugin | 1.4 | Codehaus Mojo |
protobuf | maven-protoc-plugin | 0.3.2 | github |
在你的项目中使用的工具链
有两个重要的组成部分,你需要配置为使用工具链:
- maven-toolchains-plugin 在你的项目 POM 。
- toolchains.xml文件在构建机器。
maven-toolchains-plugin 是一个设置工具链被插件意图等使用在你的项目中。
例如,你想使用一个不同的JDK版本编译你的项目不是用来运行Maven的版本,您可以配置要使用这个插件如下pom.xml文件显示的版本:
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
</plugin>
<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.5</version>
<vendor>sun</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
...
</plugins>
正如你可以看到上面的例子,一个JDK工具链,使用
toolchains.xml文件(看下面)配置在你设置安装路径的工具链。这个文件应该被放置**/.m2**。 当maven-toolchains-plugin执行,它会找 toolchains.xml ,读取它并找到一个工具链匹配插件配置所需要的工具链。在我们的例子中,一个JDK工具链使用
<?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>
请注意,您可以配置许多工具,如你想在你的toolchains.xml文件