背景
有时候拿过别人的工程使用,update project之后发现编码不对,中文全部乱码,然后jdk也自动变成了1.5版本,项目报了一大堆错误。
这时候老手心里还是很淡定,右击项目,在属性里修改下编码,然后在build path里面改下jdk版本,搞定。
后来再update project编码和jdk又自动变回去了,于是乎大怒,无奈又重新操作一遍。
周而复始,甚为有趣。
问题分析
肯定是maven引起的,因为用maven update的时候才出现这问题。
怎么修改,肯定一个是修改maven整个的配置文件,也就是maven安装目录下的conf目录下的settings.xml,然后修改了之后eclipse也得知道这个修改,得从eclipse的首选项preferences里面更新下配置,最后改下项目的pom.xml配置文件。
这样从maven到eclipse到工程全部统一了,应该OK。
具体实施
首先改下settings.xml
打开我计算机目录D:\Tool\\apache-maven-3.5.3\\conf
在<profiles>
和</profiles>
中间添加如下代码,就是指定JDK为1.8版本。
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
然后改下eclipse的首选项
点击eclipse菜单Window-Preferences-Maven-User Settings,将Global和User的Settings都设置为刚刚修改过的配置文件,并且点击Update Settings后Apply。
修改项目maven配置文件pom.xml
打开项目pom.xml文件,在 <plugins>
和</plugins>
之间添加两个插件,用于指定资源文件编码,指定编译的jdk版本并制定编译字符集编码。
<!-- 本插件解决资源文件编码问题 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<!-- 本插件用于指定maven编译的jdk版本。maven3默认用jdk1.5,maven2默认用jdk1.3。 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<!-- 源代码使用的JDK版本 -->
<source>1.8</source>
<!-- 生成的目标版本 -->
<target>1.8</target>
<!-- 字符集编码 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
总结
多看文档多总结,多多益善。