1. 程式人生 > >《Maven官方指南》使用工具鏈指南

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

原文連結  譯者:carvendy

使用工具鏈指南

什麼是工具鏈?

Maven 工具鏈提供了一種當他們構建的時候需要時候外掛發現使用jdk(或者別的工具),而不需要配置他們在每一個pom.xml中,或者強制給出精確的路徑在每個構建的機器上。

有了maven工具鏈申請JDK工具鏈,一個專案可以在構建的時候被指定一個版本的jdk依賴maven正使用的JDK。想一想JDK能怎麼設定到IDE類似IDEA,NetBean和eclipse,或者你能怎麼從Maven構建使用的JDK中使用老的JDK編譯。

先決條件

工具鏈只能在Maven 2.0.9或者更高的版本使用。想知道更多設計和實現的,請看工具鏈 下面是一些外掛是工具的意圖,使用的工具型別:

在你的專案中使用的工具鏈

有兩個重要的組成部分,你需要配置為使用工具鏈:

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檔案