maven-compiler-plugin的使用和配置

背景:

        当我们一个模块的代码具有多个不同jdk版本的时候,如果我们想统一编译,这时我们可以使用maven-compiler-plugin插件。我们可以将这些jdk的版本号,还有类型都定义在一个toolchains.xml文件里面。而在pom.xml文件中只需要引用toolchains.xml中定义的别名就可以了。

Toolchains是和pom中其他的plugin结合起来使用的,比如最常用的maven-compiler-plugin。

首先定义toolchains.xml文件,这个文件最好放在${user.home}/.m2/中。

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <!-- JDK toolchains -->
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>oracle</vendor>
    </provides>
    <configuration>
      <jdkHome>D:\jdk\jdk-17</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>8</version>
      <vendor>oracle</vendor>
    </provides>
    <configuration>
      <jdkHome>D:\jdk\jdk-1.8</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

上面我们定义了2个JDK的toolchains,一个JDK17,一个JDK8,下面看下怎么在pom文件中使用:

<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>17</version>
          <vendor>oracle</vendor>
        </jdk>
      </toolchains>
    </configuration>
  </plugin>
  ...
</plugins>

上面的pom配置文件中,我们通过简单的引用toolchains中的定义,即可无缝的进行JDK版本的切换。当有不同的模块需要使用不同版本的jdk时,只需要在各自的pom中引入上面的配置并配置好要使用的jdk版本即可。

Toolchains需要Maven 2.0.9以上版本的支持。

Toolchains是需要和pom中的plugin一起使用的,下面的图中列出了toolchains支持的plugin名字和最低的版本要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值