这几天做maven,svn和CruiseControl的持续集成,被maven的编译问题整的头大.
具体情况是这样:
我所参与的这个项目在平常编译打包时候使用的是maven,而非我更熟悉的ant.先前我在学习CruiseControl时候,使用的是ant.并且也在svn上用了一个demo把这个project也能定时构建了.
但是正儿八经地拿来做现有项目的自动定时构建时,却老是看到后台报错"编码 GBK 的不可映射字符",每次buid的时候都会有这种问题产生.
刚开始以为是cruiseControl的配置有问题,就找开发要来了maven在命令行下做编译打包的命令:
mvn package -Dmaven.test.skip=true
自己跑到命令行上运行了下,一样的报错.
从开发那边了解到,项目平常打包编译使用的maven2,而且他们平常没遇到这个问题(现在的开发也是半路接手).网上查了下,说是maven2在windows下使用gbk编码,所以会有这个问题.
从网上看到有文章说是在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文件的改法试了下,也是不行.而这回已经下班了,呃,等第二天来研究了.
今天早上来,终于给出来个解决办法,那就是在pom.xml文件的如下内容中,添加encoding节点:
1: <plugin>
2: <groupId>org.apache.maven.plugins</groupId>
3: <artifactId>maven-compiler-plugin</artifactId>
4: <version>2.0.2</version>
5: <configuration>
6: <source>1.6</source>
7: <target>1.6</target>
8: <!--encoding,就是这个才能解决问题-->
9: </configuration>
10: </plugin>
添加<encoding>UTF-8</encoding>.然后再去编译,先前的报错问题没了.
转自:http://www.cnblogs.com/leipei2352/archive/2011/04/20/2022128.html
相关推荐
IDEA编码GBK不可映射字符解决方法 IDEA是一款功能强大且广泛应用的集成开发环境(Integrated Development Environment),它提供了大量实用的功能来提高开发效率和代码质量。但是,在使用IDEA时,开发者可能会遇到...
解决方法是将映射文件首行的编码字符集由“UTF-8”改为“UTF8”或者“GBK”。 MyBatis找不到映射文件的问题可以通过正确地配置资源目录和Maven项目来解决。同时,我们需要注意中文编码问题,以避免MyBatis对UTF-8...
Maven编码问题:“编码GBK的不可映射字符” 这个错误通常发生在使用中文操作系统(如Windows XP或Win7)且项目源代码采用UTF-8编码时。由于Maven默认使用GBK编码进行编译,导致无法正确处理某些特殊字符,从而引发...
- 在处理中文字符时,我们需要了解字符编码的概念,如GBK、GB2312、UTF-8等,这些编码方式对中文字符的表示方式不同,可能导致乱码问题。 - Unicode是解决多语言字符编码的国际标准,包括简体和繁体中文。UTF-8是...
汉字的繁简转换涉及到的是字符集的映射,主要涉及到GB2312、GBK、Big5(繁体)以及Unicode等编码。在简体中文中,我们主要使用GB2312或GBK编码,而在繁体中文中则通常使用Big5编码。在Unicode编码中,同一汉字的简体...
在map方法中处理字符串时,可以使用字符编码转换的方式解决乱码问题,比如将字符串的byte数组转换为GBK格式的字符串。 在实现MapReduce程序之前,需要在计算机上安装JDK,这是因为Java是编写MapReduce程序的必需...
4. **Apache Commons Lang库**:虽然不直接处理JSON,但Apache Commons Lang是一个非常有用的辅助库,提供了各种字符串处理、数组操作等实用工具,有时在处理JSON字符串时可能会用到。 5. **JSON-P(JSR 353)或...
- 编码问题:确保Javadoc的编码设置为“UTF-8”,避免GBK编码导致的不可映射字符问题。 - 注册问题:使用正确的注册网址,避免创建组织账户。 总之,将代码上传到Jcenter需要注册Bintray账号,创建Maven仓库,...
在下载过程中,可能会遇到中文文件名乱码的问题,这是由于字符编码不一致导致的。 描述中的"下载文件名中文乱码解决方案"提示了我们在下载过程中可能遇到的一个常见问题。为了解决这个问题,你需要确保你的操作系统...
5. **charsets.jar**: 包含了Java标准字符集的实现,支持多种字符编码,如UTF-8、GBK等,确保在处理不同编码的文本时的兼容性。 6. **xalan-2.6.0.jar**: Xalan是Apache的一个XSLT处理器,用于将XML文档转换成其他...
3. **字符编码设置**:`CharacterEncodingFilter`是Spring提供的过滤器,用于设定请求和响应的编码方式,防止乱码问题。这里设置编码为GBK,可以根据实际需求调整。 4. **Struts2配置**:`FilterDispatcher`是...
7. **编码规范**:`pageEncoding = "GB2312"`设置页面编码为GBK,确保中文字符正确显示,但在现代开发中,通常推荐使用UTF-8编码。 8. **数据库操作**:虽然没有具体的数据库连接代码,但商品管理系统通常需要与...
这个过滤器的作用是在所有请求进入Web应用之前统一进行字符编码的转换,这里设置的是GBK编码。 #### 三、总结 综上所述,在进行SSH框架的整合过程中,需要注意以下几个方面: - 确保项目中使用的库版本与服务器...
- 字符转换:在处理多语言或多编码环境时,字符转换是必需的,如GBK与UTF-8之间的转换,以避免乱码问题。 总结,Java项目开发平台开发规范方案是指导开发者遵循一致的开发流程和技术栈的重要文档,确保项目在开发、...
解决这个问题需要修改Tomcat的`logging.properties`文件,将UTF-8编码更改为GBK,然后重启服务器。 网页无法显示,404 Not Found错误是另一个常见的问题。这可能是因为URL路径输入错误。正确访问JSP页面的URL应该...
进一步学习Java 1.5及以后版本的新特性,包括泛型、枚举、增强for循环等,同时了解字符集编码的转换和使用,如`Unicode`、`GB2312`、`GBK`、`UTF-8`、`ISO8859`等。 #### 三、网络编程与Web技术 这一部分主要涉及...
4. **编码支持**:支持多种字符编码,如UTF-8、GBK等。 5. **文件操作**:打开、保存、另存为、关闭文件,可能还支持文件拖放功能。 6. **多文档界面**:同时处理多个文本文件,便于多任务处理。 7. **代码高亮**:...