gpt4 book ai didi

java - 使用maven UTF-8编码的源文件编译失败

转载 作者:行者123 更新时间:2023-12-01 06:06:21 26 4
gpt4 key购买 nike

我正在使用maven来构建一个项目。源文件采用 UTF-8 编码。我的pom.xml(相关片段)是这样的:

<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-resources-plugin 确实获取了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 - 没有变化。

最佳答案

您正在配置默认的 Maven 行为(请参阅 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html ):

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
...
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>

您说您在 pom.xml 中将 project.build.sourceEncoding 设置为 UTF-8,但是错误消息显示编码是 Cp1253。配置错误不在您发布的代码片段中。您可以发布 pom.xml 的更完整版本吗?

<小时/>

您必须通过以下两种方式之一将值 UTF-8 设置为 project.build.sourceEncoding 属性或 encoding 元素:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
...
<encoding>UTF-8</encoding>
</configuration>
</plugin>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

关于java - 使用maven UTF-8编码的源文件编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com