xerces でutf-8なXMLの日本語コメントの解析に失敗してエラー
Eclipseではテストが通るのに、maven2で実行するとこんなエラーが出る。
org.xml.sax.SAXParseException: Invalid byte 3 of 3-byte UTF-8 sequence.
とか、
java.io.UTFDataFormatException: invalid byte 3 of 3-byte UTF-8 sequence (0x3f)
原因は色々考えられるが、今回の場合は$PROJECT_ROOT/src/main/resources配下のエンコーディング指定がデフォルトのままだったことが原因。
pom.xmlに以下のようにリソースディレクトリを追加したら、
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
同じくpom.xmlに最低でも
<build> 〜(省略)〜 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>utf-8</encoding> </configuration> </plugin> 〜(省略)〜 </build>
という指定を追加する必要がある。(デフォルトエンコーディングと同じエンコーディングでリソースを記述していればいいけど、明記したほうが無難)
まあ、propertiesとかを使っていれば、native2asciiを自動でかけるとかの設定をする(※)と思うので、こんなことで2時間強もはまらないんだろうな。