2013-10-21 58 views
5

我有一个Maven的项目,该项目是使用以下属性配置: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

+0

您是否100%确定您的源代码是UTF-8编码的?可能它们不是,但它在你的环境中出于某种原因工作(也许你的IDE会干扰) – sola

+3

请更新你的maven-compiler-version原因2.0.2真的很旧。目前我们有3.1 .. – khmarbaise

+0

与默认的maven-compiler插件v2.0.2有相同的问题。增加版本解决问题。 – gavenkoa

回答

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(以及适用于您的团队的其他人)是否配置为UTF-8。

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

祝你好运!我知道这东西可能会有多恼人。

1

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

相关问题