管理工具---Maven系列(一)编译问题

来源:互联网 发布:sqlserver 2016 sn 编辑:程序博客网 时间:2024/06/05 14:21

问题: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);        }    }}

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-war-plugin插件的文档,里面有编码相关的设置:
http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#resourceEncoding
加群一起进步: 300458205

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝赠品有瑕疵怎么办 淘宝赠品不发货怎么办 移动电视没信号怎么办 网络电视死机了怎么办 电视接收网络信号不好怎么办 tcl电视待机打不开怎么办 宽带电视看不了怎么办 电视总是闪退怎么办 电视出现系统更新怎么办 电视一直在更新怎么办 电视更新死机了怎么办 法院打电话不接怎么办 内向不敢辞职怎么办呀 生气后睡不着觉怎么办 被气得睡不着怎么办 一生气就睡不着怎么办 手机接电话声音小怎么办 发微信老公不回怎么办 欠钱没有欠条怎么办 朋友欠钱不还怎么办没欠条 个人欠销售货款怎么办 货款一直不还怎么办 欠钱不接电话找不到人怎么办 欠钱人电话不接怎么办 客户欠款不给怎么办 客户货款打一半怎么办 欠款人不到庭怎么办 别人打电话不接怎么办 百合注册被禁用怎么办? 监控显示未登录怎么办 发票认证了两次怎么办 拼多多账号异常怎么办 淘新闻账号异常怎么办 白领贷逾期了怎么办 用钱包信用不足怎么办 易借金app闪退怎么办 随心借不还款怎么办 苹果x来电显示慢怎么办 被垃圾短信轰炸怎么办 苹果手机被轰炸怎么办 苹果被短信轰炸怎么办