Maven切换编译语言版本
我总感觉在pom.xml
里面的properties
标签里的版本信息以及部署编译插件
和settings.xml
文件里面的有些冲突。为什么settings.xml里profiles
配置了一个或者多个jdk,为什么在pom.xml
还需要写那些参数以及编译插件呢。
测试删除pom.xml
里的properties
标签和build
标签,只通过idea里的maven工具切换profile
刷新maven,查看语言级别
再次修改profile
,查看语言级别
所以当通过idea切换settings里配置的profile时,不用配置什么参数,以及编译插件,直接通过idea的可视化参数配置即可。
其实,还有些疑惑,如果pom.xml
以及settings.xml
都配置,最后遵循哪一个?
下面用编译语言jdk11做演示:
不选择profiles
查看语言级别:
测试选择profile
jdk17
查看语言级别:
不难发现,profile
的优先级还是比maven配置插件高一些的,所以当maven选择profiles
后,可以不用再去配置编译插件。
如果我把settings里配置的profile都删除了,最后会按照哪个呢?
再回到程序,刷新maven,继续查看当前配置jdk11插件的语言级别
此时idea里不再显示peofiles:
查看语言级别:
如果此时删除配置的编译插件,语言级别会改变吗?
查看语言级别:
果然jdk语言级别变成了默认jdk1.5。
恢复settings里的profile
不选择profile
总结:
优先级从大到小排序:
settings.xml里profile配置 > pom.xml配置 > maven默认配置