《Maven官方指南》使用工具链指南

原文链接  译者:carvendy

使用工具链指南

什么是工具链?

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

在你的项目中使用的工具链

有两个重要的组成部分,你需要配置为使用工具链:

  1. maven-toolchains-plugin 在你的项目 POM 。
  2. 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工具链,使用 <version> “1.5” <vendor> “sun”将被使用。 现在插件将怎么知道JDK被安装了呢?这个就需要toolchains.xml的到来了。

toolchains.xml文件(看下面)配置在你设置安装路径的工具链。这个文件应该被放置**${user.home}/.m2**。 当maven-toolchains-plugin执行,它会找toolchains.xml,读取它并找到一个工具链匹配插件配置所需要的工具链。在我们的例子中,一个JDK工具链使用 <version> “1.5” <vendor>“sun”。在一次匹配中发现插件,插件将被Maven会话使用、正如你所看到的下面的toolchains.xml,这的确是一个JDK工具链使用 <version> “1.5” <vendor> “sun”的配置。所以当maven-compiler-plugin配置在我们的pom中执行,它将会看到一个工具链在Maven会话中和将使用工具链(在我们的例子中,JDK安装在**/path/to/jdk/1.5**) 来编译源码。 开始于Maven 3.3.1 你可以放toolchains.xml无论你放到哪里还是使用**–global-toolchains file选项,但是它还是推荐放到${user.home}/.m2/**。

<?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文件

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Maven官方指南》使用工具链指南

魔术师Carvendy

魔术师Carvendy

尘世间一小小Javaer ,喜欢coding和思考。
魔术师Carvendy
FavoriteLoading添加本文到我的收藏
  • Trackback are closed
  • Comments (0)
  1. No comments yet.

You must be logged in to post a comment.

return top