当我使用maven-jaxb2-plugin生成JAXB类时,我使用部分(!?)德语Javadoc获取类。 (我的默认语言环境:de_CH)
我想要的是什么:英语Javadoc
我尝试设置maven opts:-Duser.language=en -Duser.country=US
但它没有效果。
如何使用英文Javadoc生成JAXB类?
以下是部分带有部分德语Javadoc的JAXB类的Javadoc:http://drombler.sourceforge.net/DromblerACP/docs/site/0.2.1-SNAPSHOT/apidocs/org/drombler/acp/core/action/jaxb/package-frame.html
以下是相应的POM:http://sourceforge.net/p/drombler/drombler-acp/ci/default/tree/drombler-acp-core-action/pom.xml
相关的JAXB问题:
https://java.net/jira/browse/JAXB-1001
任何解决方法?
答案 0 :(得分:13)
您可以使用args/arg
配置中的maven-jaxb2-plugin
元素将任意属性传递给XJC:
<configuration>
<extension>true</extension>
<args>
<arg>-Duser.language=en</arg>
</args>
</configuration>
这些参数将被传递给XJC。
但我不知道-Duser.language=en
-Duser.country=US
是否是正确的选择。无论如何,args/arg
将被传递给XJC。如果不起作用,请提交问题here。
免责声明:我是maven-jaxb2-plugin的作者。
<强>更新强>
此功能在版本0.10.0
中实施。现在你可以the following:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<configuration>
<locale>es</locale>
</configuration>
</plugin>
答案 1 :(得分:0)
此错误似乎是回归,因为先前版本中不存在该问题。
所以也许你可以使用org.codehaus.mojo:jaxb2-maven-plugin:1.5
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
</plugin>
注意:在1.5中,多次执行不起作用(参见jaxb2-maven-plugin only executing first execution)。我不知道他们是否会得到他们的插件。
答案 2 :(得分:0)
我也需要这个....唯一合理的解决方法(对于其他插件,如mojohaus / jaxb2-maven-plugin)是在生成文件之前调用Locale.setDefault(YOURLANGUAGE)(在我的情况下生成)来自xsd和xjc的java文件... ...
例如,您可以使用maven antrun插件在执行生成之前设置默认语言环境:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>setLocaleFixedToUS</id>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<target>
<scriptdef name="setLocaleFixedToUS" language="javascript">
<![CDATA[
importClass(java.util.Locale);
actualDefault = Locale.getDefault();
project.setProperty("actual-default-locale", actualDefault);
Locale.setDefault(Locale.US);
]]>
</scriptdef>
<setLocaleFixedToUS />
</target>
</configuration>
</plugin>
设置-Duser.language = en -Duser.country = US或命令行参数的所有其他解决方案对我来说也不起作用。
答案 3 :(得分:0)
在Windows命令行中:
> SET JAVA_TOOL_OPTIONS=-Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8
> xjc .
通过jdk9测试