Apache Maven项目提供的Compiler插件详解
来源:互联网 发布:几何网络是什么意思 编辑:程序博客网 时间:2024/06/13 15:57
Compiler插件用于编译Maven项目的Java源代码,最新版本是2016.2发布的3.5.1(刚刚看到,最新版本已经更新为3.6.0,2016.10.26更新)。
Compiler插件提供了如下2个goal,默认都已经绑定到Maven的生命周期阶段,无需单独指出。
- compiler:compile,绑定到compile 阶段,用以编译main/路径下的源代码
- compiler:testCompile,绑定到test-compile阶段,用以编译test/路径下的源代码
1. Compiler插件的基本配置信息
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version>
2.Compiler插件使用的Java编译器
编译Java源代码就离不开Java编译器。在Compiler插件3.0之前,默认的Java编译器就的JDK自带的javac。但是从Compiler插件3.0开始(需要JDK 1.6),默认的Java编译器是javax.tools.JavaCompiler。
如果仍然希望使用JDK自带的javac编译源代码,就需要为mvn命令配置forceJavacCompilerUse启动参数如下:
- -Dmaven.compiler.forceJavacCompilerUse=true
-Dmaven.compiler.forceJavacCompilerUse=true
3.Compiler插件设置Java编译器的执行参数
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <compilerArgs>
- <arg>-verbose</arg>
- <arg>-Xlint:all,-options,-path</arg>
- </compilerArgs>
- </configuration>
- </plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <compilerArgs> <arg>-verbose</arg> <arg>-Xlint:all,-options,-path</arg> </compilerArgs> </configuration></plugin>
4.Compiler插件设置使用其他JDK的编译器
命令mvn的运行需要依赖JDK,Compiler插件默认使用当前运行mvn命令的JDK去编译Java源代码。如果想使用其他版本的JDK编译Java源代码,则需要设置如下:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <verbose>true</verbose>
- <fork>true</fork>
- <executable>${JAVA_1_8_HOME}/bin/javac</executable>
- <compilerVersion>1.6</compilerVersion>
- </configuration>
- </plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <verbose>true</verbose> <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.Compiler插件设置要编译的Java源代码兼容的JVM版本和编译后的类库拟运行的JVM版本
通过设置Java源代码兼容的JVM版本,标明Java源代码开发过程中使用的Java版本。
通过设置编译后的类库拟运行的JVM版本,给出编译后的类库将要运行的Java环境。
默认,这两个版本都是1.5,即Java源代码开发使用JDK 1.5,编译后的类的运行环境也是JRE 1.5
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <source>1.4</source>
- <target>1.4</target>
- </configuration>
- </plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.4</source> <target>1.4</target> </configuration></plugin>
6.Compiler插件设置可用的运行内存空间
Compiler插件的运行本身也需要一定的内存空间,设置如下:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <fork>true</fork>
- <meminitial>128m</meminitial>
- <maxmem>512m</maxmem>
- </configuration>
- </plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <fork>true</fork> <meminitial>128m</meminitial> <maxmem>512m</maxmem> </configuration></plugin>
参考文献:
http://maven.apache.org/plugins/maven-compiler-plugin/
- Apache Maven项目提供的Compiler插件详解
- Apache Maven项目提供的Compiler插件详解
- Apache Maven项目提供的Archetype插件详解
- Apache Maven项目提供的Ant插件详解
- Apache Maven项目提供的AntRun插件详解
- Apache Maven项目提供的EJB插件详解
- Apache Maven项目提供的JAR插件详解
- Apache Maven项目提供的WAR插件详解
- Apache Maven项目提供的EAR插件详解
- Apache Maven项目提供的Surefire插件详解
- Apache Maven项目提供的Dependency插件详解
- Apache Maven项目提供的Archetype插件详解
- Apache Maven项目提供的Ant插件详解
- Apache Maven项目提供的AntRun插件详解
- Apache Maven项目提供的EJB插件详解
- Apache Maven项目提供的JAR插件详解
- Apache Maven项目提供的WAR插件详解
- Apache Maven项目提供的EAR插件详解
- BZOJ4403: 序列统计
- .emacs
- Unity3D NGUI UIInput中文输入,插入文本时后面文本被删除问题
- 基于ARM板的打印机程序
- JAVA中常用的加密算法(Hash、base64、MD5、ASC)
- Apache Maven项目提供的Compiler插件详解
- 自己动手模仿 springmvc 写一个 mvc框架
- springMVC文件上传
- Apache Maven项目提供的Ant插件详解
- ecache的简单配置使用
- Python 对象,实例
- DeepLearning(基于caffe)实战项目(7)--从caffe结构里函数总结一览caffe
- [一天几个linux命令] 命令执行的决断依据 ; && ||
- MacOS 开发入门