maven一波流(6)——解决烦人的maven工程编码和jdk版本自动切换问题

简介: 背景有时候拿过别人的工程使用,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。

image.png

修改项目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>


总结

多看文档多总结,多多益善。

相关文章
|
2月前
|
Oracle Java 编译器
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
47 1
|
9天前
|
Oracle Java 关系型数据库
Java 开发者必备:JDK 版本详解与选择策略(含安装与验证)
Oracle Java SE 支持路线图显示,JDK 8(LTS)支持至2030年,非LTS版本如9-11每6个月发布且支持有限。JDK 11(LTS)支持至2032年,而JDK 17及以上版本现在提供免费商用许可。LTS版本提供长达8年的支持,每2年发布一次。Oracle JDK与OpenJDK有多个社区和公司构建版本,如Adoptium、Amazon Corretto和Azul Zulu,它们在许可证、商业支持和更新方面有所不同。个人选择JDK时,可考虑稳定性、LTS、第三方兼容性和提供商支持。
24 0
|
24天前
|
Java Maven
idea编码GBK的不可映射字符Maven修改编码格式的多种方式
idea编码GBK的不可映射字符Maven修改编码格式的多种方式
21 1
|
30天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
14 0
|
1月前
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
20 0
|
1月前
|
Java 应用服务中间件 nginx
idea打war包时,JDK版本的问题解决方式
idea打war包时,JDK版本的问题解决方式
15 0
|
1月前
|
Java
916.【Java】javap 查看 class 文件的jdk编译版本
916.【Java】javap 查看 class 文件的jdk编译版本
49 2
|
1月前
|
Oracle 安全 Java
JDK收费的各个版本(记录一下)
JDK收费的各个版本(记录一下)
299 0
|
2月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
109 2
|
2月前
|
Oracle Java 关系型数据库
JDK各版本的官方下载地址
JDK各版本的官方下载地址

推荐镜像

更多