how to make cxf-xjc-plugin generate sources in utf-8
I could make cxf-xjc-plugin generate sources in UTF-8 by adding the following entry to the xsdOption element:
<extensionArgs>
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
MaxVar
Updated on July 19, 2022Comments
-
MaxVar almost 2 years
I try to generate java classes from xsd in a maven project using cxf-xjc-plugin.
It runs fine, but the generated source files get platform specific encoding (cp1251 on a windows pc) instead of utf-8. If any xsd types contain non-latin characters in schema annotations, then they become readable only in that specific encoding and the compiler later complains with
[WARNING] /C:/.../SomeType.java:[17,4] unmappable character for encoding UTF-8
.Please help me force utf-8 for sources generation.
The source encoding is set with
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
The build plugin is set up like that:
<build> ... <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-xjc-plugin</artifactId> <version>2.7.0</version> <configuration> <extensions> <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.7.0</extension> <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension> </extensions> </configuration> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <goals> <goal>xsdtojava</goal> </goals> <configuration> <sourceRoot>${basedir}/target/generated-sources</sourceRoot> <xsdOptions> <xsdOption> <extension>true</extension> <xsd>${basedir}/src/main/resources/schemas/Policy.xsd</xsd> <bindingFile>${basedir}/src/main/resources/schemas/Policy.xjb</bindingFile> <extensionArgs> <extensionArg>-Xdv</extensionArg> <extensionArg>-Xfluent-api</extensionArg> </extensionArgs> </xsdOption> </xsdOptions> </configuration> </execution> </executions> </plugin> ...
after having read through some older issues with xjc, particularly CXF-4369 and JAXB-499 I tried to force encoding with maven project property
<file.encoding>utf-8</file.encoding>
and set a system property while runningmvn -Dfile.encoding=utf-8 clean install
, but got nowhere.