Maven打包编译错误工作区间设置编码格式gbk可以utf-8不可以
转自:https://blog.csdn.net/wolf_love666/article/details/52593483
问题:Maven打包编译错误工作区间设置编码格式gbk可以utf-8不可以
错误如下:
[INFO] ————————————————————————
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project ins-service: Compilation failure
[ERROR] javac: �Ҳ����ļ�: E:\SVN3\20160918JunKang_Dev\JKDS\05源代�?后端\v1.0\parent\ins-service\src\main\java\com\junk\enums\FileUploadEnum.java
[ERROR] �÷�: javac
[ERROR] -help �����г����ܵ�ѡ��
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :ins-service
解决办法:
根据出现的乱码发现应该推测到格式编码问题,所以验证下,改工作区间编码格式为gbk呀呀,竟然好了。再改会utf-8格式呀呀又出错了,很奇怪,推测问题是两种:
一种是原来的gbk现在utf-8但是很明显问题不对路,但是还是提供一种解决方式将gbk代码改成utf-8代码
代码如下:
package org.xc.binny;
import java.io.File;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
public class GBK2UTF8App {
/**
* 将制定目录下的所有Java源文件的编码格式从GBK修改为UTF-8
*/
public static void main(String[] args) throws Exception {
//GBK编码格式源码路径
String srcDirPath = "C:\\Users\\Wolf\\Desktop\\src";
// //转为UTF-8编码格式源码路径E:\SVN3\20160918JunKang_Dev\JKDS\05源代码\后端\v1.0\parent\ins-service\src\main\java\com\junk
String utf8DirPath = "C:\\Users\\Wolf\\Desktop\\src";
// String srcDirPath = "E:\\SVN3\\20160918JunKang_Dev\\JKDS\\05源代码\\后端\\v1.0\\parent\\ins-common\\src\\main\\java\\com\\common";
// //转为UTF-8编码格式源码路径E:\SVN3\20160918JunKang_Dev\JKDS\05源代码\后端\v1.0\parent\ins-service\src\main\java\com\junk
// String utf8DirPath = "E:\\SVN3\\20160918JunKang_Dev\\JKDS\\05源代码\\后端\\v1.0\\parent\\ins-common\\src\\main\\java\\com\\common";
//
//获取所有java文件
Collection<File> javaGbkFileCol = FileUtils.listFiles(new File(srcDirPath), new String[]{"java"}, true);
int count=0;
for (File javaGbkFile : javaGbkFileCol) {
//UTF8格式文件路径
String utf8FilePath = utf8DirPath+javaGbkFile.getAbsolutePath().substring(srcDirPath.length());
//使用GBK读取数据,然后用UTF-8写入数据
// FileUtils.writeLines(new File(utf8FilePath), "UTF-8", FileUtils.readLines(javaGbkFile, "GBK"));
FileUtils.writeLines(new File(utf8FilePath), "UTF-8", FileUtils.readLines(javaGbkFile, "GBK"));
count++;
System.out.println("执行文件次数"+count);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
jar包:commons-io-1.4.jar
第二种是maven编译的问题:
搜罗pom文件关于编译的问题原来:
maven中的plugins 和 pluginManagement、dependencies和dependencyManagement。这两个后者都需要放置在父文件里面,前者在子文件里。他们区别是:
maven会在当前项目中加载plugins声明的插件;
pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,maven不会加载该插件,pluginManagement声明可以被继承。
pluginManagement的一个使用案例是当有父子项目的时候,父项目中可以利用pluginManagement声明子项目中需要用到的插件, 之后,当某个或者某几个子项目需要加载该插件的时候,就可以在子项目中plugins节点只配置 groupId 和 artifactId就可以完成插 件的引用。
pluginManagement主要是为了统一管理插件,确保所有子项目使用的插件版本保持一致。
哈哈问题找到了那么改一下吧:
将 <pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
......
</plugins>
<pluginManagement>
改成:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
......
</plugins>
<build>
那么原因到底是什么呢为啥呢gbk可以通过,utf-8不可以呢
由于系统默认编码是GBK,因此默认可以gbk通过编译。
Maven打包编译错误工作区间设置编码格式gbk可以utf-8不可以的更多相关文章
- 解决maven打包编译出现File encoding has not been set问题
maven打包编译时后台一直输出警告信息 [WARNING] File encoding has not been set, using platform encoding GBK, i.e. bui ...
- 记一次maven打包编译文件一直不正确
maven打包发现war包解压后的class文件总是跟原Java不一样 后来发现pom中这么写到 <plugins> <plugin> <artifactId>ma ...
- eclipse开发Groovy代码,与java集成,maven打包编译
今天尝试了一下在eclipse里面写Groovy代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来. 首先需要给eclipse安装一下Groovy的插件,插件地址:https://gith ...
- IntelliJ IDEA开发Scala代码,与java集成,maven打包编译
今天尝试了一下在IntelliJ IDEA里面写Scala代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来. 首先需要给IntelliJ IDEA安装一下Scala的插件,在IDEA的启 ...
- Maven打包编译找不到com.sun.crypto.provider.SunJCE类
Maven配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mav ...
- maven打包遇到错误,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
对Pom文件进行配置(亲自尝试,已成功解决) <build> <plugins> <plugin> <groupId>org.apache.maven. ...
- Android Retrofit2.1.0设置编码格式GBK
设置接口如下: public interface IHttpService { /** * 获取userId * @param params * @return */ @FormUrlEncoded ...
- Eclipse中三种设置编码格式的方法
转自:https://blog.csdn.net/rainy_black_dog/article/details/52403735 很早以前听过一位老师说过:咱们中国人不管学习哪种编程语言,总会遇到乱 ...
- 解决Maven并行编译中出现打包错误问题的思路
解决Maven并行编译中出现打包错误问题的思路 并行构建 Maven 3.x 提供了并行编译的能力,通过执行下列命令就可以利用构建服务器的多线程/多核性能提升构建速度: mvn -T 4 clean ...
随机推荐
- Java:Java 队列的遍历
Java队列到底有没有可以遍历的功能呢?暂且试一下吧 参考链接:stl容器遍历测试 1.LinkedList实现简单遍历 for(Iter =LocTimesSerials.size()-1; iSe ...
- jq 获取表单所有数据
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 微信小程序开发常用方法
1.函数中访问data中的数据 _this.setData({ // 日历数据 signList: dataList, // 当前日期 todayDay: str }) 2.if判断 wx:if=&q ...
- Java 8 函数接口详细教程
ay = new byte[array.length]; for (int i = 0; i < array.length; i++) { transformedArray[i] = funct ...
- OSI参考模型(转)
一.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协议).传输层(TCP/UDP协议).会话层(创建/建立/断开连接).表示层(翻译,编码,压缩,加密) ...
- 初识 Django
HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通信规则规定 ...
- 【Leetcode】【简单】【169求众数】【JavaScript】
题目 169. 求众数 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [ ...
- 【JavaScript】不使用正则表达式和字符串的方式来解析浏览器的URl地址信息
1.比如我们要获取的网站URl地址是:https://music.163.com/#/playlist?id=2384581760 一般我们能够想到的方式是直接使用正则表达式获取使用字符串直接解析的方 ...
- Linux—Ubuntu14.0.5设置MySQL的字符集
1.mysql配置文件地址 cd /etc/mysql/my.cnf 2.在[mysqld]在下方添加以下代码 [mysqld] init_connect='SET collation_connect ...
- Vue CLI 3.x 简单体验
文档 中文文档 补充于02月10日 vue脚手架的3.x版本已经在开发中,现在还处于alpha版本.我们来看看有哪些变化. 使用 npm install -g @vue/cli 命名方式已经改为npm ...