You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven JavaDoc Plugin未遵循语言偏好,如何生成英文静态站点?

如何让Maven JavaDoc插件生成英文框架的静态HTML站点?

你已经在maven-javadoc-plugin中配置了<locale>en_US</locale>,但系统语言为德语时,生成的JavaDoc站点框架(如导航栏、按钮、系统提示文字等)仍显示为德语。结合你使用的UMLDoclet,可以通过以下两种方式解决:

方案一:给UMLDoclet显式传递Locale参数

UMLDoclet作为自定义doclet,需要额外参数才能接收Locale配置,在插件的<configuration>中添加<additionalparam>,将-locale en_US传递给它:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.6.3</version>
    <configuration>
        <sourcepath>${project.build.directory}/generated-sources/delombok</sourcepath>
        <locale>en_US</locale>
        <source>22</source>
        <show>private</show>
        <doclint>none</doclint>
        <tags>
            <tag>
                <name>apiNote</name>
                <placement>a</placement>
                <head>API Note:</head>
            </tag>
            <tag>
                <name>implNote</name>
                <placement>a</placement>
                <head>Implementation Note:</head>
            </tag>
        </tags>
        <doclet>nl.talsmasoftware.umldoclet.UMLDoclet</doclet>
        <docletArtifact>
            <groupId>nl.talsmasoftware</groupId>
            <artifactId>umldoclet</artifactId>
            <version>2.1.2</version>
        </docletArtifact>
        <!-- 添加该行,传递Locale参数给UMLDoclet -->
        <additionalparam>-locale en_US</additionalparam>
    </configuration>
</plugin>

方案二:强制JVM使用英文Locale

如果方案一无效,可直接在Maven运行时指定系统级Locale,覆盖德语系统的默认设置:

方式1:命令行执行时指定

mvn javadoc:javadoc -Duser.language=en -Duser.country=US

方式2:在pom.xml中配置系统属性

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.6.3</version>
    <configuration>
        <!-- 原有配置保持不变 -->
        <sourcepath>${project.build.directory}/generated-sources/delombok</sourcepath>
        <locale>en_US</locale>
        <source>22</source>
        <show>private</show>
        <doclint>none</doclint>
        <tags>
            <tag>
                <name>apiNote</name>
                <placement>a</placement>
                <head>API Note:</head>
            </tag>
            <tag>
                <name>implNote</name>
                <placement>a</placement>
                <head>Implementation Note:</head>
            </tag>
        </tags>
        <doclet>nl.talsmasoftware.umldoclet.UMLDoclet</doclet>
        <docletArtifact>
            <groupId>nl.talsmasoftware</groupId>
            <artifactId>umldoclet</artifactId>
            <version>2.1.2</version>
        </docletArtifact>
        <!-- 添加系统属性配置 -->
        <systemProperties>
            <property>
                <name>user.language</name>
                <value>en</value>
            </property>
            <property>
                <name>user.country</name>
                <value>US</value>
            </property>
        </systemProperties>
    </configuration>
</plugin>

原因说明

  • UMLDoclet基于标准JavaDoc doclet扩展,默认不会自动继承Maven插件的<locale>配置,需要通过<additionalparam>显式传递参数。
  • 系统默认Locale会影响JVM的语言环境,进而影响doclet加载的国际化资源文件(如框架文字),因此强制指定JVM级Locale也能覆盖系统默认设置。

内容的提问来源于stack exchange,提问作者Pixelcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:11:04