好的,我很困惑, 我收到以下编译错误
.../Currency.java:[16,60] unmappable character for encoding ASCII
我已使用
在maven conf设置中设置编码<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<properties>
这是构建输出
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory /export/jenkins_slave/workspace/Agent-Transfer/repo/foo-bar- api/target
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 10 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 59 source files to /export/jenkins_slave/workspace/Agent- Transfer/repo/foo-bar-api/target/classes
[JENKINS] Archiving /export/jenkins_slave/workspace/Agent-Transfer/repo/foo-bar- api/pom.xml to /export/ciserver/.hudson/jobs/Agent-Transfer/modules/com.cdc$foo-bar- api/builds/2012-03-31_14-49-02/archive/com.cdc/foo-bar-api/Agent-Transfer-SNAPSHOT/foo-bar- api-Agent-Transfer-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
/export/jenkins_slave/workspace/Agent-Transfer/repo/foo-bar-api/src/main/java/com/cdc/games/domain/Currency.java:[16,60] unmappable character for encoding ASCII
我知道编码是从settings.xml中获取的,因为如果我删除它就会得到编码警告
[WARNING] Using platform encoding (ISO8859-1 actually) to copy filtered resources, i.e. build is platform dependent!
问题是,从上面的注销中看,它似乎只对资源有影响:资源而不是编译:编译。我期待the wiki上的描述可以编码.java文件
正如你所看到的那样,我正在构建一个奴隶,即使使用编码警告它也会构建它,但我想这是因为平台编码不同。我可以在奴隶上改变它,但我宁愿没有,因为我希望构建是可移植的
答案 0 :(得分:0)
也许您正在使用的编辑器在您输入时不承认Mavens字符编码并且它会选择其他平台或编辑器相关的编码?它在编辑器中看起来可能正确,但似乎有些奇怪的角色偶然潜入代码中。您是否尝试删除Currency.java类中的第16行并重写它(不使用复制/粘贴)?
答案 1 :(得分:0)
我遇到了同样的问题几次支持hudson / jenkins的多个实例。在我的例子中,事实证明LANG env var未在hudson / jenkins配置中明确设置为en_US.UTF-8 。
一旦我为hudson / jenkins安装设置了Global环境var,我的包含unicode字符的java文件就停止给我一个错误。
答案 2 :(得分:0)
试试这个
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.resources.sourceEncoding>UTF-8</project.resources.sourceEncoding>
</properties>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
</configuration>
</plugin>
并在您的server.xml中
<Connector port="8080" URIEncoding="UTF-8"/>
答案 3 :(得分:0)
我认为你有这个工作,因为这是一年......但是在
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<properties>
最后一次不正确。应该是</properties>
,对吧?