Maven项目源编码不起作用

时间:2013-10-21 13:29:58

标签: java maven encoding utf-8

我正在使用以下属性配置Maven-Project:

<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

3 个答案:

答案 0 :(得分:9)

最后,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>

答案 1 :(得分:2)

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

接下来,清理您的本地.m2存储库并再次运行您的构建。您可能有可能使用正确的编码编译了一个传递依赖项。但你可能有'#34;对&#34; .m2中的版本使一切正常,而另一台机器上不存在相同的版本。

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

答案 2 :(得分:1)

设置新的环境变量 - maven

,而不是设置JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8选项