win10 下 mvn install 报错:编码GBK不可映射字符

news2024/12/26 16:23:07

问题背景

       由于jenkins需要部署不同的项目,需要使用不同的jdk版本,所以需要配置单独的settings.xml,使用指定的jdk版本进行编译,这里需要单独的maven设置,在配置完后进行mvn的install的时候,由于存在中文注释会报错GBK不可映射字符。

       刚开始笔者以为是mvn的默认编码是GBK造成的,在pom.xml文件配置了一堆encoding为utf-8的配置(完全按照maven官网配置),发现无论怎么配置都无效。

       后来笔者尝试使用cmd命令的javac来单独编译文件,发现原来是由于win10的jdk格式默认是GBK,导致无法编译,后来使用javac -encoding utf-8 Test.java来完成了编译。

      最终笔者在环境变量配置了UTF-8的编码来实现工程编译。

      在找不到错误的时候,笔者想到了最简单直接的javac编译来验证问题出在哪里。因为maven底层也是借助jdk的javac来实现编译,只不过它实现了自动化编译,但原理都是一样。 

      

解决办法

在maven指定使用不同的JDK编译

pom.xml配置:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
          <verbose>true</verbose>
          <fork>true</fork>
          <executable><!-- path-to-javac --></executable>
          <compilerVersion>1.3</compilerVersion>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

 为了避免硬编码,可以使用变量:

<executable>${JAVA_1_4_HOME}/bin/javac</executable>

maven的conf下的settings.xml文件配置 :

<settings>
  [...]
  <profiles>
    [...]
    <profile>
      <id>compiler</id>
        <properties>
          <JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
        </properties>
    </profile>
  </profiles>
  [...]
  <activeProfiles>
    <activeProfile>compiler</activeProfile>
  </activeProfiles>
</settings>

具体见官网: Apache Maven Compiler Plugin – Compiling Sources Using A Different JDK

设置maven编码UTF-8

mvn -version 默认是这样的

新建系统环境变量名为MAVEN_OPTS,值为 -Xms256m -Xmx512m -Dfile.encoding=UTF-8

设置JDK编码为UTF-8

 系统变量: 设置 JAVA_TOOL_OPTIONS 的值为 -Dfile.encoding=UTF-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件操作利器:Python十大库全面解析

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python拥有多个库用于文件操作&#xff0c;提供了各种功能来管理、读取和写入文件。这些库覆盖了从基本的文件系统交互到高级的文件压缩和数据格式处理等多个方面。文件操作是编程中不可或缺的一部分&#xff0c…

【海思SS528 | VDEC】MPP媒体处理软件V5.0 | 视频解码模块——学习笔记

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Golang开发之------ Beego框架

1.安装go&#xff08;配置环境变量&#xff09; 2.安装gorm&#xff08;Goland编辑器举例&#xff09;&#xff1a; go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct 3.初始化项目&#xff08;首先需要在工作目录新建bin文件夹&#xff0c;pkg文件…

[Python入门系列之十二]安装Jupyter notebook与代码运行

引言 Jupyter Notebook将代码、图片和文本完美结合在一起&#xff0c;为编程学习带来了前所未有的便捷性。本文旨在为初学者提供一个关于Jupyter Notebook的入门指南。 什么是Jupyter Notebook Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许你创建和共享包含代码…

五、初识FreeRTOS之FreeRTOS的任务创建和删除

本节主要学习以下内容&#xff1a; 1&#xff0c;任务创建和删除的API函数&#xff08;熟悉&#xff09; 2&#xff0c;任务创建和删除&#xff08;动态方法&#xff09;&#xff08;掌握&#xff09; 3&#xff0c;任务创建和删除&#xff08;静态方法&#xff09;&#xf…

大数据之 Hadoop

hadoop主要解决&#xff1a;海量数据的存储和海量数据的分析计算 hadoop发展历史 Google是hadoop的思想之源&#xff08;Google在大数据方面的三篇论文&#xff09; 2006年3月&#xff0c;Map-reduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目&#xff0c…

计算机视觉:使用dlib实现人脸检测

1 dlib介绍 Dlib是一个广泛使用的开源库&#xff0c;在计算机视觉和机器学习领域具有重要影响。它是由Davis King在2002年开发&#xff0c;主要用C语言编写&#xff0c;但也提供了Python接口。Dlib结合了高效的算法和易用性&#xff0c;使其成为学术界和工业界的热门选择。 1.…

C++基础 -18-继承中类继承的区别

无论使用公有&#xff0c;保护&#xff0c;私有继承 都无法访问基类私有成员 在多级继承中 使用公有继承 派生的派生可以访问基类的公有&#xff0c;保护成员 在多级继承中 使用保护继承 派生的派生可以访问基类的公有&#xff0c;保护成员 在多级继承中 使用私有继承 派生的派…

车辆动力学 | 轮胎纵滑和侧滑下的简化模型

1、轮胎模型的定义&#xff1a; ——反应轮胎力学性能&#xff08;所有侧向力、纵向力以及会正力矩等&#xff09;与侧偏角和运动状态&#xff08;滑转率和滑移率&#xff09;关系的数学模型 2、四个组成部分 胎面层、带束层、胎体、轮辋 3、简化模型的假设条件 4、起滑点&am…

电脑微信多开怎么操作?电脑微信多开bat代码

电脑微信多开怎么操作&#xff1f; 方法一&#xff1a;电脑微信多开bat代码方法二 微信是我们日常使用率很高的社交软件&#xff0c;在工作中因工作需要可能会用到两个微信号&#xff0c;如果是只登录一个微信&#xff0c;另外一个微信的聊天信息很容易漏看&#xff0c;这时候微…

<Linux>冯诺依曼体系结构||操作系统||系统调用于用户操作接口

前言:本文从软硬件角度计算机解释软硬件结构 硬件—冯诺依曼体系结构 软件—操作系统 文章目录 冯诺依曼计算机体系结构背景理解举例 操作系统(OS)OS的管理为什么要有操作系统? 系统调用与用户操作接口系统调用用户操作接口引入:printf&&scanf的重新理解库函数 计算机…

力扣 41 42.接雨水问题详细讲解,保证看完必会接雨水问题!!!时间复杂度最优解 o(n)

首先来个开胃小菜&#xff0c;41.缺少最小整数&#xff08;难度&#xff1a;困难&#xff09;真实感觉像是个简单级别 41. 缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额…

干货:机器学习之线性代码基础

资料地址&#xff1a;https://machine-learning-from-scratch.rea 线性代数 0. 要点汇总1. 向量 Vector 1.1 向量是什么1.2 向量的运算 1.2.1 向量的加法1.2.2 向量的数乘 2. 线性组合、张成的空间与基 Linear Combination, Span and Basis 2.1 运算封闭2.2 线性组合2.2 向量…

Android进阶之路 - TextView文本渐变

那天做需求的时候&#xff0c;遇到一个小功能&#xff0c;建立在前人栽树&#xff0c;后人乘凉的情况下&#xff0c;仅用片刻就写完了&#xff1b;说来惭愧&#xff0c;我以前并未写过文本渐变的需求&#xff0c;脑中也仅有一个shape渐变带来的大概思路&#xff0c;回头来看想着…

Proteus的网络标号与总线

Proteus为了减少过多、复杂的连线&#xff0c;可以使用网络标号与总线配合使用。 Proteus的导线上添加了网络标号&#xff0c;意味着在Proteus上相同的网络标号是连在一起的&#xff0c;所说在图纸上看不出来。 如下图是比较好的Proteus中使用总线的绘制的图纸。可以效仿着画…

【坤坤之夜 KUNKUNNIGHT】- 探索神秘世界,开启刺激冒险之旅!

你是否准备好迎接一个充满挑战和惊喜的单机游戏体验&#xff1f;坤坤之夜&#xff08;KUNKUNNIGHT&#xff09;将带你进入一个神秘而刺激的世界&#xff0c;让你尽情探索&#xff0c;解锁各种有趣的技能和道具&#xff0c;解决谜题&#xff0c;完成各种挑战。 坤坤之夜的游戏画…

CodeMeter软件保护及授权管理解决方案(二)

客户端管理工具 CodeMeter Runtime是CodeMeter解决方案中的重要组成部分&#xff0c;其为独立软件包&#xff0c;开发者需要把CodeMeter Runtime和加密后的软件一起发布。CodeMeter Runtim包括以下组件用于实现授权的使用&#xff1a; CodeMeter License Server授权服务器 Co…

我叫:基数排序【JAVA】

1.自我介绍 基数排序(radix sort)属于“分配式排序” (distribution sort)&#xff0c;又称“桶子法” (bucket sort)或bin sort,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,是‘桶排序’的扩展 2.基本思想 将所有待比较数值统一为同样的数位长度,数位较短的数…

【图论】重庆大学图论与应用课程期末复习资料(私人复习资料)

考试章节范围 第一章&#xff1a;1.1、1.2、1.3 填空 顶点集和边集都有限的图&#xff0c;称为有限图只有一个顶点的图&#xff0c;称为平凡图边集为空的图&#xff0c;称为空图顶点数为n的图&#xff0c;称为n阶图连接两个相同顶点的边的条数称为边的重数&#xff1b;重数大…

荣耀冲击高端,一边推新「修路」,一边降价「拆桥」

作者 | 辰纹 来源 | 洞见新研社 从2020年11月17日与华为分家&#xff0c;开启独立创业之路&#xff0c;到成功逆袭&#xff0c;今年第三季度以18%的份额重回中国智能手机市场榜首&#xff0c;荣耀用了3年时间。 图源&#xff1a;Canalys 在这三年时间内&#xff0c;荣耀经历…