Compiler插件用于编译Maven项目的Java源代码,最新版本是2016.2发布的3.5.1(刚刚看到,最新版本已经更新为3.8.0,2018.7.26更新)。

Compiler插件提供了如下2个goal,默认都已经绑定到Maven的生命周期阶段,无需单独指出。

1. Compiler插件的基本配置信息

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            ...
          </configuration>


2.Compiler插件使用的Java编译器

编译Java源代码就离不开Java编译器。在Compiler插件3.0之前,默认的Java编译器就的JDK自带的javac。但是从Compiler插件3.0开始(需要JDK 1.6),默认的Java编译器是JDK的javax.tools.JavaCompiler

如果仍然希望使用JDK自带的javac编译源代码,就需要为mvn命令配置forceJavacCompilerUse启动参数如下:

-Dmaven.compiler.forceJavacCompilerUse=true

3.设置Java编译器的执行参数

 

 

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <fork>true</fork>
    <compilerArgs>
      <arg>-verbose</arg>
      <arg>-Xlint:all,-options,-path</arg>
    </compilerArgs>
  </configuration>
</plugin>

4.设置使用其他JDK的编译器

 

 

命令mvn的运行需要依赖JDK,Compiler插件默认使用当前运行mvn命令的JDK去编译Java源代码。如果想使用其他版本的JDK编译Java源代码,则需要设置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <fork>true</fork>
    <executable>${JAVA_1_8_HOME}/bin/javac</executable>
    <compilerVersion>1.6</compilerVersion>
  </configuration>
</plugin>

注意:上述配置中,用以编译Java源代码的是JDK 1.8,而运行mvn命令的是JDK 1.6

5.设置要编译的Java源代码兼容的JVM版本和编译后的类库拟运行的JVM版本

通过设置Java源代码兼容的JVM版本,标明Java源代码开发过程中使用的Java版本。

通过设置编译后的类库拟运行的JVM版本,给出编译后的类库将要运行的Java环境。

默认,这两个版本都是1.6,即Java源代码开发使用JDK 1.6,编译后的类的运行环境也是JRE 1.6

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
  </configuration>
</plugin>

6.设置JVM可用的运行内存空间

 

 

Compiler插件的运行本身也需要一定的内存空间,默认单位为M字节,设置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <fork>true</fork>
    <meminitial>128m</meminitial>
    <maxmem>512m</maxmem>
  </configuration>
</plugin>

 

 

 

参考文献:

http://maven.apache.org/plugins/maven-compiler-plugin/

https://github.com/apache/maven-compiler-plugin

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐