一.背景
maven工程修改jdk编译版本的几种方法,以前这些小细节处理了就处理了,没有去记录,现在带徒弟,就写下吧!可能不全面,不喜勿喷。哦,说下,本文的例子是在eclipse中开发截图的。
二.方法一在pom的properties中指定
在pom.xml中的properties节点添加maven.compiler.source和maven.compiler.target参数,就可以了。
<properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>
可是添加后还是默认的1.7版本啊,是不是骗人的?
不是的,你把工程maven的update就好了啊。在工程上面点击鼠标右键后选择maven=>updateproject
这下不就改变了嘛?
当你把maven.compiler.source和maven.compiler.target参数定义在父工程的pom.xml中,子工程可以继承的,这样在多模块、多层级工程中,这种写法很优雅,值得推荐。
三.方法二在pom.xml中build的plugin中指定版本
<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.11.0</version><configuration><source>1.5</source><target>1.5</target><encoding>utf-8</encoding></configuration></plugin></plugins></build>
这种方法指定后,工程上面不需要点击maven的update project,会自动刷新,马上就看到编译版本就变了。
当然,你也可以在build的编译插件中参数的形式去指定,只是一般情况需要你在properties设置值,不设置的时候,可能有默认值。
<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.11.0</version><configuration><source>${maven.compiler.source}</source><target>${maven.compiler.target}</target><encoding>utf-8</encoding></configuration></plugin></plugins></build>
当方法二一、二同时指定且不一样时,方法二即build插件指定编译版本的优先级高于properties指定编译版本的优先级,是以方法二build插件指定编译版本为准。
四.方法三在settings.xml中去指定
大概了解了一下,也是可行的,一般很少用,不推荐。推荐方法一。
五.其他方法
也许eclipse中还可以设置,这些都不推荐了。