これは奇妙な問題です: 私はいくつかのUTF-8文字を使用するJavaテストファイルを持っています。私は(これmaven platform encodingを参照してください、認知プラットフォームのエンコーディングとソースファイルのエンコーディングの両方を設定する)MVNがUTF-8エンコーディングを使用しないでコンパイルする
mvn -Dfile.encoding=UTF-8 -Dproject.build.sourceEncoding=UTF-8 test
を使用して、Mavenのでそれをコンパイルすると、私は
でファイルをコンパイルするとき、私は[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building project
[INFO] task-segment: [test]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory path/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory path/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 7 source files to path/target/test-classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
path/to/file.java:[42,23] unclosed character literal
path/to/file.java:[42,25] ';' expected
path/to/file.java:[42,26] unclosed character literal
path/to/file.java:[47,23] unclosed character literal
path/to/file.java:[47,25] illegal character: \182
path/to/file.java:[47,26] unclosed character literal
のような何かを得ます
path/to/file.java:42: unclosed character literal
illegalCharEnc('ä');
^
path/to/file.java:42: ';' expected
illegalCharEnc('ä');
^
path/to/file.java:42: unclosed character literal
illegalCharEnc('ä');
^
path/to/file.java:47: unclosed character literal
illegalCharDec('ö');
^
path/to/file.java:47: illegal character: \182
illegalCharDec('ö');
^
path/to/file.java:47: unclosed character literal
illegalCharDec('ö');
^
6 errors
:
javac path/to/file.java
は私が同様のエラーを取得します私が代わりに
javac -encoding UTF-8 path/to/file.java
を使用する場合
は今、私が見つからないため、依存関係のため、cannot find symbol
エラーが発生します。だから私は、javac
が、テストをコンパイルするときにMavenのUTF-8オプションで呼び出されないということを理解しています。compiler:testCompile
-sectionにUsing 'UTF-8' encoding to copy filtered resources.
が見つからないことに注意してください。 この結論は正しいですか?何か不足していますか?これは既知の問題ですか?私はそれについて何かできることは何ですか? 明らかに、私のシステムでのプラットフォームのエンコーディングはUTF-8ではありませんが、現在は変更できません。
プラットフォームのデフォルトのエンコーディングをUTF-8に設定すると、この問題は解決されました。この問題は、UTF-8だけでなく、さまざまなエンコーディング標準がサポートされています。これはMavenのバグだと思う。 – roesslerj
コンパイラプラグインのどのバージョンを使用していますか? – khmarbaise
コンパイラプラグインのバージョンがpomに指定されていない、Mavenのバージョンが "2.2.1(rdebian-4)"です。私は 'project.build.SourceEnconding'プロパティをpomに指定しようとしましたが、何も変更しませんでした。とにかくコマンドラインで '-Dproject.build.sourceEncoding ='を指定するのと同じでなければなりません。 – roesslerj