spring boot compiler 版本实践
一. Maven用户可以继承spring-boot-starter-parent项目来获取合适的默认设置。
该父项目提供以下特性:
1、默认编译级别为Java 1.6,若要编译更高版本,则:
<properties>
<java.version>1.8</java.version>
</properties>
或使用maven-compiler-plugin
2、源码编码为UTF-8
3、一个依赖管理节点,允许你省略普通依赖的 <version>标签,继承自 spring-boot-dependenciesPOM。
二 spring boot项目需要以下插件打包,maven-compiler-plugin无用
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.0.BUILD-SNAPSHOT</version>
一般来说,spring-boot-maven-plugin 与 maven-compiler-plugin 共存控制
参考:
http://makaidong.com/exmyth/6238_7946050.html
http://www.docin.com/p-1939396109.html
三 maven-compiler-plugin source target
笔者之前,一直认为configuration的source,target中的数值是约束jdk版本的,只要本地jdk版本大于等于这个数值就行。比如,这个数值是1.6,那么只要jdk版本大于等于1.6,就可以编译,如果jdk版本是1.7,则是生成的是jdk1.7规范的class文件,如果jdk是1.6,则生成的是jdk1.6规范的class文件。笔者认真看了一下这个插件的文档,发现source和target是javac 在编译时要传的参数。我在官方网站上找到了关于source和target的说明,source不用介绍了,我们重点看一下target的说明。
target配置多少,就用哪个jdk版本的规范文件。比如,你是java7的编译器,如果target是1.6,则生成java1.6规范的class文件。 有了这个插件,我们在jsf 接口发布的时候,只需要在API 子项目的pm.xml中配置好1.6,就可以了,再也不用担心因为是java1.7的编译器而把JSF接口的jar 编译成java1.7规范的class了。
https://blog.csdn.net/majinfei/article/details/54344968