Maven发布Jar包中文乱码怎么办-创新互联

这篇文章主要介绍Maven发布Jar包中文乱码怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为德钦企业提供专业的网站制作、成都网站建设,德钦网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

Maven deploy 乱码

今天使用Maven发布Jar包时,发布功能都是正常的也成功上传到了仓库,就是项目跑越来后出中文中现了乱码:

{
 "code": "SUCCESS",
 "success": true,
 "message": "鎿嶄綔鎴愬姛",
 "data": [
  {
   "key": "app_force_login",
   "value": "false"
  }
 ]
}

之前一直在用的mac开发,一直也没碰到过这样的问题。后来换了家里的 Windows 台式机代码拉下来后,使用maven deploy发布了一次common的Jar包,然后所有common包中的中文都乱码了,一开始还以为是服务器环境的问题,后来发现在执行maven deploy时输出了一些警告:

[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,5] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,13] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,24] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[18,9] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[18,17] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[25,9] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/Result.java:[10,8] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/Result.java:[10,28] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[23,15] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[25,74] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[49,12] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[49,14] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[60,12] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[60,14] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/exception/BizRuntimeException.java:[7,11] 编码GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/exception/BizRuntimeException.java:[14,12] 编码GBK的不可映射字符

打开源码一看又是正常的中文

修改 Idea 的编码

首先看了一下 Idea的文件编码是不是UTF-8,发现在 Windows 环境下项目中的编码是继承系统的GBK,全部修改成UTF-8试下:

Maven发布Jar包中文乱码怎么办

重新执行:

mvn clean deploy -DskipTests

还是样的出现乱码警告!!然后查看对应类ResultCodeclass文件发现里面也是乱码的:

public interface ResultCode {
  ResultCode SUCCESS = new DefaultResultCode("SUCCESS", "鎿嶄綔鎴愬姛", true);
  ResultCode ERROR = new DefaultResultCode("ERROR", "鎿嶄綔澶辫触", false);
  ResultCode BAD_REQUEST = new DefaultResultCode("BAD_REQUEST", "璇锋眰閿欒\ue1e4", false);
  ResultCode NOT_FOUND = new DefaultResultCode("NOT_FOUND", "璇锋眰鏁版嵁鏈\ue045壘鍒�", false);

  String getCode();

  String getMessage();

  Boolean isSuccess();

  static ResultCode error(String code, String message) {
    return new DefaultResultCode(code, message, false);
  }

  static ResultCode ok(String code, String message) {
    return new DefaultResultCode(code, message, true);
  }
}

猜想可能是某种字符编码对应不上。

修改 Maven 编译插件编码

修改文件/idea的编码后,还是一样乱码。我仔细查看了下mvn发布日志发现了些有用的信息:

[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!

大概意思就是没有设置文件编码,使用系统默认的编码GBK,根据指示找到项目的pom.xml将插件的编码改为utf-8

  
        org.apache.maven.plugins
        maven-compiler-plugin
        
          8
          8
          utf-8
        
      

总结

问题的产生是由于公司平台用的Mac电脑并且系统使用的字符集是UTF-8,切换到Windows后由于默认的字符集是GBK,而且没有指定maven-compiler-plugin插件的编码,导致编译出来的字节码文件中的中文乱码了。

以上是“Maven发布Jar包中文乱码怎么办”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道!

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Maven发布Jar包中文乱码怎么办-创新互联
标题来源:http://hbruida.cn/article/ceoese.html