Mavenエンコーディング(ソースとリソース)は標準のproject.build.sourceEncoding
プロパティで処理されます。これは実際には存在し、UTF-8
という値に設定するのがよい方法です。 maven-resources-plugin
のベストプラクティスの公式ドキュメントから
は、このプロパティは次のようにピックアップされ
ポンポンプロパティセクションで定義する必要があるプロパティ${project.build.sourceEncoding}
で濾過リソースをコピーするためのエンコーディングを定義することですmaven-compiler-plugin
のencoding
プロパティのデフォルト値とmaven-resources-plugin
のencoding
プロパティです。さらにその存在を強制するために
、あなたがしてUTF-8
でproject.build.sourceEncoding
財産の存在とその値を強制するために、maven-enforcer-plugin
とそのrequireProperty
ルールを使用することができます。つまり、プロパティが設定されておらず、この正確な値を持たない場合、ビルドは失敗します。同じことがproject.reporting.outputEncoding
プロパティのために行うことができる、
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>project.build.sourceEncoding</property>
<message>Encoding must be set and at UTF-8!</message>
<regex>UTF-8</regex>
<regexMessage>Encoding must be set and at UTF-8</regexMessage>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
注:このような構成の例以下は
は、あなたの
pom.xml
ファイルに
build/plugins
セクションを追加します。
スタックオーバーフローの深い読み:
ボーナス:私たちは、スタックオーバーフローの上なので、最高経営責任者(CEO)は、おそらく再び彼の昔の記事を見て幸せになる:次のJavaコードを考えるとThe Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
テスト
:
package com.sample;
public class Main {
public void 漢字() {
}
}
とMavenで次のように設定します。
<properties>
<project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding>
</properties>
US-ASCII
は7ビットであり、誤った文字エラーが発生するため、ビルドに失敗します。同じことがUTF-8
では起こらず、代わりに8ビットを使用します。
@ a-di-matteo:この広範な答えをありがとう、完璧に私のために動作します。私はまだいくつかの(IMHO)シンプルなビルドの崩壊シナリオを達成するために2つのプラグインを使用することに少し不満を感じています。 – Rob