Maven下执行命令出现乱码错误的解决方法

昨天使用Maven Release Plugin发布项目的时候出现一个很奇怪的问题,使用 mvn deploy 命令直接发布到maven私仓的时候是正常的,但是执行 mvn release:prepare 发布正式版的时候执行测试的时候会出现错误,原来测试的时候会自动加载mysql的一个初始化sql文件,这个文件里面包含中文的字符串,但字符串会出现乱码,于是又想到应该是文件编码的问题。
在项目父类的pom.xml文件中已经做了如下的设置:
org.apache.maven.plugins
maven-resources-plugin

UTF-8

发现依然如此,最后发现需要在环境变量中进行设置,设置 MAVEN_OPTS=-Duser.language=zh-CN -Dfile.encoding=UTF-8,再次执行就可以正常了。

最后再说两个小技巧:
一是系统里面因为各种原因安装了多个版本的JDK和SVN,在使用maven release plugin的时候使用到的JDK版本和SVN版本跟系统环境变量中的不一致,可以在Eclipse中Run Configurations中单独设置命令的环境变量值:

另外一个是在Windows系统下面推荐一个Rapid Environment Editor的工具,管理环境变量非常方面,界面如下:

参考资料:
maven platform encoding

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注