首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven编译编码难题

maven编译编码难题
EN

Stack Overflow用户
提问于 2012-04-01 05:02:52
回答 4查看 3.2K关注 0票数 2

好了,我被弄糊涂了,我得到以下编译错误

代码语言:javascript
复制
.../Currency.java:[16,60] unmappable character for encoding ASCII

我在maven conf设置中使用以下命令设置编码

代码语言:javascript
复制
<properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<properties>

以下是构建输出

代码语言:javascript
复制
[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中提取的,因为如果我删除它,就会得到编码警告

代码语言:javascript
复制
[WARNING] Using platform encoding (ISO8859-1 actually) to copy filtered resources, i.e. build is platform dependent!

问题是,从上面的日志输出来看,它似乎只对resources:resources有影响,而对compile:compile没有影响。我从the wiki上的描述中期待着对.java文件进行编码

正如你所看到的,我是在从服务器上构建的,在主服务器上,它甚至使用了编码警告来构建,但我猜这是因为平台编码不同。我可以在从机上更改这一点,但我不希望这样,因为我希望构建是可移植的

EN

回答 4

Stack Overflow用户

发布于 2012-04-01 05:26:35

也许你正在使用一个编辑器,当你打字的时候,它没有确认Maven字符编码,而它会拾取一些其他依赖于平台或编辑器的编码?它在编辑器中可能看起来是正确的,但似乎有一些奇怪的字符意外地潜入了代码中。您是否尝试过删除Currency.java类中的第16行并重写它(不使用复制/粘贴)?

票数 0
EN

Stack Overflow用户

发布于 2012-12-15 04:03:26

在支持hudson/jenkins的多个实例时,我已经遇到过几次相同的问题。在我的例子中,在hudson/jenkins配置中,LANG env var没有显式设置为en_US.UTF-8

一旦我为hudson/jenkins安装设置了全局环境变量,我的包含unicode字符的java文件就不再给我一个错误。

票数 0
EN

Stack Overflow用户

发布于 2013-05-13 18:13:49

尝尝这个

代码语言:javascript
复制
    <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>

source

在你的server.xml中

代码语言:javascript
复制
     <Connector port="8080" URIEncoding="UTF-8"/> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9959663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档