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