有没有办法在不使用外部JAVA_TOOL_OPTIONS的情况下使用UTF-8制作Maven构建类文件?


问题内容

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

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

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

如此处所述尝试了所有操作:为Clojure源文件启用UTF-8编码

任何人都可以了解这个很棒的Maven问题?


问题答案:

@乔普·艾根(Joop
Eggen)在这里给出了正确答案:http://codingdict.com/questions/123947

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

<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>