这几天做maven,svn和hudson的持续集成,被maven的编译问题整的头大.
具体情况是这样:
我所参与的这个项目在平常编译打包时候使用的是maven,当使用maven编译或者打包时,却老是看到后台报错"编码 GBK 的不可映射字符",每次buid的时候都会有这种问题产生.
刚开始以为是cruiseControl的配置有问题,就找开发要来了maven在命令行下做编译打包的命令:
mvn package -Dmaven.test.skip=true
自己跑到命令行上运行了下,一样的报错.
从开发那边了解到,项目平常打包编译使用的maven2,而且他们平常没遇到这个问题(现在的开发也是半路接手).网上查了下,说是maven2在windows下使用gbk编码,所以会有这个问题.
从google上查到在pom.xml文件的<project>节点下创建一个一个properties子节点,写入以下内容:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
不过很杯具,我试了下,不行,问题依旧.这回又把文件改了回去.
后面发现自己解决不了了.就找开发了,既然他们平常编译打包都正常,肯定有办法的.开发刚开始以为我下载的代码有问题,可能没从svn下载完,我更新了一下,这次所有文件和文件夹都是绿色图标了.这回他编译了下,也失败了.
从他那边拿过来他本地的源码(先前已提交到了svn服务器上了),拿到我这边来,执行
mvn package -Dmaven.test.skip=true
结果能正常编译,于是两个人一起拿beyond compare比较他给的项目的文件和我从svn上下的项目文件,比较了半天,很痛苦地发现,原来两边的文件是一样的,除了从svn上下载的项目文件没有包含target目录外....
那问题就处在target了,打开他给过来的项目文件夹里面的target目录,发现里面已经有了.class文件,于是把target目录删除,在用maven编译,这回,两边都会报错了.都是那个"编码 GBK 的不可映射字符"问题.
终于找到解决办法,那就是在pom.xml文件的如下内容中,添加encoding节点:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<!--encoding,就是这个才能解决问题-->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
添加<encoding>UTF-8</encoding>.然后再去编译,先前的报错问题没了.
分享到:
相关推荐
解决idea编译代码后报“编码GBk不可映射错误”解决办法
cxf3.2.0出现编码GBK的不可映射字符问题,这个提供解决方法及直接替换的jar包。
解决cxf2.7.18出现编码GBK的不可映射字符问题,从服务端或者客户端层面上根本解决。
ant打包时编码 GBK 的不可映射字符 原因:这个主要是因为我们在写代码的时候加入了一些中文注释,而导致编译时候出现的问题。 解决方式:要处理这个问题,仅仅只需要在 build.xml文件中的调用javac的所有地方加入...
cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
问题描述:文件名.java:1: 错误: 编码GBK的不可映射字符
最新cxfjar包,开发过程中遇到字符编码gbk不可映射问题
cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
搭建Webservice框架必备的jar包,方便快速搭建,ClientProxyFactoryBean JaxWsDynamicClientFactory 等工具类
Java常见错误分析Java常见错误分析Java常见错误分析
/以下p,q,e,m可由 本程序的 参数 p0生成,可任意改变 #define VL 8 // p, q 仅在加密程序中用 DWORD p[VL/2] = {0Xb2ab9d39, 0X8e53d98d, 0X77dd8ec1,0X995283d6}; DWORD q[VL/2] = {0Xc7e37a29, 0X7fb7c168, 0Xea61...
HelloServlet.java:2: 错误: 编码GBK的不可映射字符 解决:Desktop>javac -encoding UTF-8 HelloServlet.java 原因:使用CMD运行java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式...
错误: 编码GBK的不可映射字符 重要说明:关于数据类型的默认值问题 数据类型划分——浮点形 传统bug问题 数据类型划分——字符型 数据类型划分——布尔型 数据类型划分——字符串型 9、运算符 自增、自减操作 三目...
最近根据使用发现,在ubuntu下,安装sublime Text 3 后,无法使用中文输入的问题。 系统为:ubuntu 64位,安装搜狗输入法linux版 解决方法: 1.下载共享库 点击下载 libsublime-imfix.so 2.下载好库后,进入目录...
补充知识:Android Studio Error—Gradle: 错误:编码 GBK 的不可映射字符的 产生原因分析:项目太旧导致的 解决方案:对应项目级别build.gradle最下方添加 tasks.withType(JavaCompile) { options.encoding = UTF-...
C3: 实现更方便的符号输入方案, 将字符映射表适时调用, 利用输入法相应的编码或自定编码, 在多行多列的二维表及标签卡间切换可选码. C4: 可以如excel或其它支持 列处理的文本软件一样, 更加方便的修改码表. 码表分成...
C3: 实现更方便的符号输入方案, 将字符映射表适时调用, 利用输入法相应的编码或自定编码, 在多行多列的二维表及标签卡间切换可选码. C4: 可以如excel或其它支持 列处理的文本软件一样, 更加方便的修改码表. 码表分成...
//即返回字符串在GBK、UTF-8和ISO8859-1编码下的byte数组表示 //目的在于把m_mbBufEnd改成指向下一行 } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e....
为了方便开发,把启动后的默认编码方式设置成为了GBK.可以配合MySQL-Front或者开源软件HeidiSQL来管理数据库. 而配合免费的MySQL管理工具 导航猫免费版(Navicat Lite),可获得不低于SQL Server的易用度, 例如可视化...