Maven关于编码GBK的不可映射字符的问题

之前都是用的Eclipse的Maven插件执行命令,后来偶然在最近完成的一个小项目的根目录里打开cmd,执行mvn clean package编码GBK的不可映射字符的问题。

明明之前在Eclipse上打成war包没问题,为什么用cmd执行package命令就会报错?在网上查了下资料,是因为没有在pom.xml文件中添加编译插件的编码字符集,如下

<build>
    <finalName>demo</finalName>
    <plugins>
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-compiler-plugin</artifactId>  
            <configuration>  
                <source>1.7</source>  
                <target>1.7</target>  
                <encoding>utf8</encoding>    
            </configuration>  
        </plugin>
    </plugins>
</build>

这里的source和target的1.7指的是编译时使用jdk1.7版本;而encoding指定了utf8编码(我测试了下,发现写utf-8也可以)。

补充mvn clean package命令的执行顺序

  1. 使用cmd的cd命令进入要打包的项目的根目录,也可以直接进入到该项目的根目录,然后按住Shift键+鼠标右键,选择在此处打开命令窗口
  2. 接下来输入mvn clean package,这里的clean是为了在package之前清理掉已有的target目录。
    1. 之后打包成功会出现BUILD SUCCESS的字样,而在打包过程中,会发现cmd的窗口出现一大堆东西,这里说一下这个mvn clean package命令的执行顺序。

执行顺序

  1. 使用清理插件maven-clean-plugin清理已有的target目录(使用了clean才有这一步)
  2. 使用资源插件maven-resources-plugin处理资源文件
  3. 使用编译插件maven-compiler-plugin编译所有源文件生成class文件到target/classes目录下
  4. 使用资源插件maven-resources-plugin处理测试用的资源文件
  5. 使用编译插件maven-compiler-plugin编译测试用的源码正常class文件到target/test-classes目录下
  6. 使用测试插件maven-surefire-plugin运行测试用例
  7. 使用打包插件maven-jar-plugin对编译后生成的文件进行打包,包名和配置的finalName一致,打包后的文件存放在target目录下

备注:不管是compile、package还是install等前三个步骤都是必不可少的。

参考链接

  1. http://www.cnblogs.com/frankyou/p/6062179.html
  2. http://blog.csdn.net/zyf_balance/article/details/50910521
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值