JAXB:如何生成英文Javadoc

时间:2014-03-14 15:03:29

标签: java jaxb xjc maven-jaxb2-plugin

当我使用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

以下是相应的XSD:http://sourceforge.net/p/drombler/drombler-acp/ci/default/tree/drombler-acp-core-action/src/main/resources/actions.xsd

以下是相应的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

任何解决方法?

4 个答案:

答案 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测试