5

我有一个使用以下属性配置的 Maven 项目:

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

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

在我的机器上,这些设置一切正常。但是,在另一台机器上,当我检查它并尝试使用mvn install编译器错误构建它时unmappable character for encoding ASCII

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project scuttle: Compilation failure: Compilation failure:
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,39] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,40] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,30] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,31] error: unmappable character for encoding ASCII

我已经尝试过跑步mvn-Dfile.encoding=UTF-8但这没有帮助。$LC_CTYPE报告UTF-8

我能做些什么?

你可以在这里看到完整的 pom 文件:https ://github.com/scravy/scuttle/blob/master/pom.xml

4

3 回答 3

10

最后,khmarbaise 的评论帮助我找到了解决方案:

我配置了编译器插件并在那里指定了源编码,现在一切正常:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</build>
于 2013-10-28T12:07:54.457 回答
2

您在 pom 中拥有所有正确的设置,这很好。验证您的 IDE(以及您的团队使用的其他 IDE,如果适用)配置为 UTF-8。

接下来,清理您的本地.m2存储库并再次运行您的构建。您的传递依赖项之一可能未使用正确的编码进行编译。但是您可能拥有“正确”的版本,可以.m2使一切正常,而另一台机器上不存在相同的版本。

祝你好运!我知道这些东西有多烦人。

于 2013-10-21T14:00:32.370 回答
1

而不是设置mavenopts,而是设置新的环境变量 -JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8

于 2017-08-15T12:44:43.117 回答