jenkins maven项目打包 utf-8 error编译失败问题
问题描述:在jenkins error 在 本地idea中打包 warning,jenkins中error导致编译失败。
编码UTF-8的不可映射字符问题对应的编译版本
maven-compiler-plugin >= 3.0 插件无论 warning 还是 error 都能正常打包
maven-compiler-plugin <=2.5.1 输出 error 日志,无法正常打包
解决方式:指定父模块插件版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
解决maven unresolved plugin 以及 如何控制maven plugin 的插件版本
https://blog.csdn.net/xx326664162/article/details/79582036
如果没有指定plugin的版本,那么系统会使用默认的版本,默认版本是由maven控制的,具体在这里https://maven.apache.org/plugins/index.html查看
复现
代码情况
同一套代码中,项目为UTF-8 文件编码为GBK, 将 GBK 引入项目后使用 maven 打包编译
使用的插件
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
maven-compiler-plugin:3.2
[INFO] — maven-compiler-plugin:3.2:compile (default-compile) @ war-package-demo —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to E:\gitee\war-package-demo\target\classes
[ERROR] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,12] 编码UTF-8的不可映射字符
[ERROR] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,13] 编码UTF-8的不可映射字符
[ERROR] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,14] 编码UTF-8的不可映射字符
maven-compiler-plugin:3.1 为 warning 级别,能正常打包
[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ war-package-demo —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to E:\gitee\war-package-demo\target\classes
[WARNING] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,12] 编码UTF-8的不可映射字符
[WARNING] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,13] 编码UTF-8的不可映射字符
[WARNING] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,14] 编码UTF-8的不可映射字符
[WARNING] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,16] 编码UTF-8的不可映射字符
[WARNING] /E:/gitee/war-package-demo/src/main/java/per/lwp/test/Test.java:[8,17] 编码UTF-8的不可映射字符
编码UTF-8的不可映射字符 编译信息
maven-compiler-plugin error 错误的为,推出除了3.1版本之外都是 error 错误
2.3.2
2.5.1
3.0 warning
3.1 warning
3.2 error
3.3 error
3.5 error
3.8.0 error
3.8.1 error
maven-compiler-plugin < 3.1 无论warning 还是 error maven构建都是失败退出
maven-compiler-plugin >= 3.1 无论warning 还是 error maven构建都是正常退出