我正在使用maven構建一個項目。源文件是UTF-8編碼的。我的pom.xml(相關片段)是這樣的:用maven UTF-8編碼的源文件編譯失敗
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<JAVA_1_8_HOME>C:\Program Files\Java\jdk1.8.0_121</JAVA_1_8_HOME>
</properties>
...
<plugins>
<!-- to compile not with default JAVA_HOME but custom path -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_1_8_HOME}/bin/javac</executable>
<compilerVersion>1.3</compilerVersion>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
...
</plugins>
現在我已經閱讀關於這個問題的許多文章/問題,但沒有建議工作。我試圖在maven-compiler-plugin上顯式設置編碼,但它仍然不起作用。我得到的錯誤是:
[ERROR] *my source file - name removed*.java:[523,182] error: unmappable character for encoding Cp1253
[ERROR] *my source file - name removed*.java:[523,189] error: unmappable character for encoding Cp1253
然而Maven的資源 - 插件不拿起project.build.sourceEncoding:
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ XXXXXXXXXX ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
我能得到這個項目編制的唯一辦法是設置JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
。
我已經嘗試maven v3.3.9和3.5.0 - 沒有變化。
有什麼' 1.3 compilerVersion>'和源編碼之間的關係?像1.3這樣的東西不允許使用'UTF-8'。我們可以有1.8嗎? –
這個DID解決了我的問題。謝謝! –