10

我不想依赖外部环境变量来强制 maven 使用 UTF-8 构建我的类。在 Mac 上,我在使用 maven 构建时遇到了各种各样的问题。只有以下选项解决了问题:

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
mvn clean install

但是,我正在分发我的项目,依靠用户设置此环境变量来正确构建项目是没有意义的。

尝试了此处描述的所有内容:为 clojure 源文件启用 UTF-8 编码

有人对那个很棒的 Maven 问题有所了解吗?

4

3 回答 3

35

@Joop Eggen 在这里给出了正确答案:https ://stackoverflow.com/a/10367745/962872

定义该属性是不够的。您必须在适当的插件中传递它。里面不会变魔术的。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>...</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>${project.build.sourceEncoding}</encoding>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>...</version>
    <configuration>
        <encoding>${project.build.sourceEncoding}</encoding>
    </configuration>
</plugin>
...
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
于 2012-04-29T20:01:35.100 回答
1

有,定义

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
于 2012-04-29T00:17:07.673 回答
1

我遇到了这个问题,但仅在从 Emacs 运行编译时。我无法更改项目的 poms。对我有用的是将以下内容放入 ~/.mavenrc

LANG=en_US.UTF-8
于 2013-09-13T19:16:31.607 回答