Maven_中文的编译警告-导致编译报错


https://blog.csdn.net/jianping_shen/article/details/6237713


最近的在项目进行编译的时候,遇到一个比较奇怪的问题。


    问题如下:代码使用mvn 进行编译的时候,提示编译警告,也就是WARN警告,

但是熟悉软件开发的同学都应该知道,WARN警告不应该导致程序的终止。

所以应该是mvn 本身的问题,


问题现象:


[[1;34mINFO[m] Compiling 30 source files to E:\180-clickcube-report-modules\basic_offline\target\classes
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;31mBUILD FAILURE[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 4.175 s
[[1;34mINFO[m] Finished at: 2018-07-13T16:07:37+08:00
[[1;34mINFO[m] Final Memory: 44M/329M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;31mERROR[m] Failed to execute goal [32morg.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile[m [1m(default-compile)[m on project [36mclickcube-report-basic-offline[m: [1;31mCompilation failure[m: Compilation failure:
[[1;31mERROR[m] E:\180-clickcube-report-modules\basic_offline\src\main\java\com\yaobaling\spark\clickcube\encrypt\base64\Base64EncryptUtil.java:[3,15] 警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除
[[1;31mERROR[m]
[[1;31mERROR[m] E:\180-clickcube-report-modules\basic_offline\src\main\java\com\yaobaling\spark\clickcube\encrypt\base64\Base64EncryptUtil.java:[4,15] 警告: BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
[[1;31mERROR[m]
[[1;31mERROR[m] E:\180-clickcube-report-modules\basic_offline\src\main\java\com\yaobaling\spark\clickcube\encrypt\base64\Base64EncryptUtil.java:[16,34] 警告: BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
[[1;31mERROR[m]
[[1;31mERROR[m] E:\180-clickcube-report-modules\basic_offline\src\main\java\com\yaobaling\spark\clickcube\encrypt\base64\Base64EncryptUtil.java:[43,19] 警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除
[[1;31mERROR[m] -> [1m[Help 1][m
[[1;31mERROR[m]
[[1;31mERROR[m] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.
[[1;31mERROR[m] Re-run Maven using the [1m-X[m switch to enable full debug logging.
[[1;31mERROR[m]
[[1;31mERROR[m] For more information about the errors and possible solutions, please read the following articles:
[[1;31mERROR[m] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException



原因分析:

 

1. maven 对中文支持不好,英文环境下能发现警告信息中的关键字符,然后编译时会忽略这些警告(虽然警告信息也会打印出来,但是不影响编译结果),而中文时maven识别不了中文里的关键字,自然不会忽略这些警告,权当错误处理。

 

2. 我原来操作系统的本地语言都是英文的,现在改成可以支持中文了,所以才会出现这样的编译问题,换句话说,如果你是完完全全的英文操作系统,maven编译时就不会因警告导致编译不通过的情况出现。




下面是我的解决方案:

我发现是我的mvn打包工具的版本问题,我将旧的版本 2.0.2 提升为新的版本 2.3.2 就能解决这个问题了


旧的版本:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

新的版本:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

结果:




猜你喜欢

转载自blog.csdn.net/u010003835/article/details/81032275