Maven でエンコーディングを構成するにはどうすればよいですか?
質問
走るとき maven install
私のマルチモジュール Maven プロジェクトでは、常に次の出力が得られます。
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
そこで、少しグーグルで調べてみましたが、次のことを追加する必要があることがわかりました。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...pom.xml に。しかし、それはすでにそこにあります(親に pom.xml
).
設定中 <encoding>
maven-resources-plugin または maven-compiler-plugin の場合も修正されません。
だから問題は何ですか?
解決
OK、問題が見つかりました。
いくつかのレポートプラグインを使用しています。ailsafe-maven-plugin のドキュメント (http://maven.apache.org/plugins/maven-failsafe-plugin/integration-test-mojo.html) 私が発見したのは、 <encoding>
構成 - もちろん - を使用します ${project.reporting.outputEncoding}
デフォルトでは。そこで、プロパティを子要素として追加しました。 project
要素とすべてが今は問題ありません:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
こちらも参照 http://maven.apache.org/general.html#encoding-warning
他のヒント
このほかに、以前の場合、人が出会ったのは、問題のスカンディック文字う機会を設けていきたいと思いる情報セキュリティーコンです。
場合は、javaソースファイルを含むスカンディック文字れている必要があるが正しく解釈される Javaを使作成のため.(例:スカンディック文字を使用定数)
このファイルが格納されるUTF-8にMavenを使用する構成は、UTF-8、システムのJavaのMavenは、今までどおりのシステムのデフォルトの例.Windows:cp1252).
このままのみの試験によmavenる印刷の値がこれらの定数は、試験までを実施。印刷されたスカンディックの文字がショウ'<?>') ない場合は試験を適正にこのことは腐敗したのがクラスファイルとしてコンパイル結果を残します。
これを防ぐために設定してくは Javaを使作成のため 使用にUTF-8エンコーディングです。というだけでは不十分であるエンコーディングの設定は、maven pom.xmlを設定する必要があり、環境変数:JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
また、Eclipseを使用する場合はWindowsが必要になる場合がありエンコーディングを設定する使用のほか、このままの個別試験によeclipse).
組み合わせの回答に、最後には、pom.xml が設定されてUTF-8できよう。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>YOUR_COMPANY</groupId>
<artifactId>YOUR_APP</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<project.java.version>1.8</project.java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- Your dependencies -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${project.java.version}</source>
<target>${project.java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
これを試してみてください
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
...
<encoding>UTF-8</encoding>
...
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>
そうで人が集まり、コンテントエンコーディングを内蔵したファイル情報源のエンコーディングです。有限mavenの特性が不十分です。有 -Dfile.encoding=UTF8
ない状態での効果は望めません。する必要性を回避するための課題を符号化する上で必要な以下の簡単なルール
- 設定mavenのエンコードは、上記のように:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
常にエンコーディング設定を明示的に、作業ファイル、文字列、IO様のコードです。ない場合は、原則として申請書類に依存します。の
-Dfile.encoding=UTF8
正確には実行時の環境設定なしに影響を及ぼす可能性があります。ていれば何千もの顧客かを設定システムの課題を見くようになっています。だけで追加の依存できる設定で説明します。ほとんどのメソッドJavaを使用するデフォルトのエンコードを実行しているときは、推奨されていくようになっています。のコンテンツはそのまま、または同一エンコーディング、も予定しているとのことです。そうでない場合、以前の手順な!例えばファイルが正しく処理できません場合、そのエンコーディングはUTF8できます。チェックファイルのエンコーディングLinuxの場合:
$ァmime F_PRDAUFT.dsv
- 顧客/サーバのエンコーディング設定を明示的に要求/応答(プロモーションコード:
@Produces("application/json; charset=UTF-8") @Consumes("application/json; charset=UTF-8")
この人の役に立.
私の場合、私は、次のプロパティを追加しなければならなかった問題を解決するために、そうmaven-dependency-plugin
を使用していた。
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
を参照してくださいのApache Mavenのリソースプラグイン/指定文字コード体系の