一、问题描述
1. 现象
编译阶段报错:illegal character: ‘\ufeff’
+ mvn -B -DskipTests clean package
[INFO] Scanning for projects...
[INFO] Downloaded:...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building java-devops-demo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Downloaded:...
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /var/jenkins_home/workspace/java-devops-demo/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /var/jenkins_home/workspace/java-devops-demo/src/main/java/com/qumy/devops/controller/HelloController.java:[1,1] illegal character: '\ufeff'
[ERROR] /var/jenkins_home/workspace/java-devops-demo/src/main/java/com/qumy/devops/controller/HelloController.java:[1,10] class, interface, or enum expected
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:48 min
[INFO] Finished at: 2022-03-25T02:49:28Z
[INFO] Final Memory: 26M/189M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project java-devops-demo: Compilation failure: Compilation failure:
[ERROR] /var/jenkins_home/workspace/java-devops-demo/src/main/java/com/qumy/devops/controller/HelloController.java:[1,1] illegal character: '\ufeff'
[ERROR] /var/jenkins_home/workspace/java-devops-demo/src/main/java/com/qumy/devops/controller/HelloController.java:[1,10] class, interface, or enum expected
[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
script returned exit code 1
2. 原因
项目文件被添加了 UTF-8 标记
二、解决方案
清除掉文件中的 UTF-8 标记。
- 将文件编码更改为 GBK 编码;
- 再将文件编码改回 UTF-8 编码。