Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.1
-
None
-
Windows, MacOSX, Linux, Maven 3.0.4
Description
As stated in http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info XML files without a BOM and without a XML encoding declaration should read the XML as UTF-8.
help:effective-pom does use the platform encoding for writing the effective-pom without emitting an appropriate XML encoding declaration in the resulting XML file.
I have created a small sample project (available at https://github.com/mfriedenhagen/invalidpom, attached as ZIP) which will reproduce the issue.
While the parent pom (https://raw.github.com/mfriedenhagen/invalidpom/master/pom.xml) has a XML encoding declaration, https://raw.github.com/mfriedenhagen/invalidpom/master/child-invalid/pom.xml has none.
Now running:
mvn -s settings.xml -gs settings.xml clean validate
will produce an invalid character for the developer name "Jörg" in child-invalid.
Two workarounds are:
- to include a XML encoding declaration as done in child-valid.
- to use JAVA_TOOL_OPTIONS on Windows as stated in http://stackoverflow.com/a/623036/49132
- to use MAVEN_OPTS=-Dfile.encoding=utf-8 mvn -s settings.xml -gs settings.xml clean validate.
Nonetheless I consider this a Major bug, as it clearly violates the recommendations of W3C.