JAXB:如何生成英文Javadoc

问题描述 投票:9回答:4

当我使用maven-jaxb2-plugin生成JAXB类时,我得到了带有部分(!?)德语Javadoc的类。 (我的默认语言环境:de_CH)

我想要的是:英语Javadoc

我试图设置maven opts:-Duser.language=en -Duser.country=US但它没有效果。

如何使用英文Javadoc生成JAXB类?

以下是部分JAXB类的Javadoc和部分德语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

任何解决方法?

java jaxb xjc maven-jaxb2-plugin
4个回答
14
投票

您可以使用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>

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)。我不知道他们是否会得到他们的插件。


0
投票

我也需要这个....唯一合理的解决方法(对于其他插件,如mojohaus / jaxb2-maven-plugin)是在生成文件之前调用Locale.setDefault(YOURLANGUAGE)(在我的情况下生成java文件)从xsd与xjc)...

例如,您可以使用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或命令行参数的所有其他解决方案对我来说也不起作用。


0
投票

在Windows命令行中:

> SET JAVA_TOOL_OPTIONS=-Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8
> xjc .

用jdk9测试

© www.soinside.com 2019 - 2024. All rights reserved.