如何从命令行禁用 Maven Javadoc 插件?

Posted

技术标签:

【中文标题】如何从命令行禁用 Maven Javadoc 插件?【英文标题】:How can I disable the Maven Javadoc plugin from the command line? 【发布时间】:2011-11-16 17:48:09 【问题描述】:

pom.xml我有这样的声明

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

有没有办法从命令行关闭它?

我知道我可以将其提取到个人资料中,但这不是我想要的。

【问题讨论】:

【参考方案1】:

可以通过将属性maven.javadoc.skip 设置为true [1] 来跳过Javadoc 生成,即

-Dmaven.javadoc.skip=true

(而不是false

【讨论】:

查看@Christoph-Tobias Schenke 对子模块采取的方法的回答。 这个参数也可以直接在jenkins中设置,避免这个问题(在Configure System中定义的Global MAVEN_OPTS中) 这对我不起作用,但了解到当您使用 maven 发布插件时,您需要以不同的方式传递此参数。这有效:mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".【参考方案2】:

看来,方法很简单

-Dmaven.javadoc.skip=true

不适用于发布插件。在这种情况下,您必须将参数作为“参数”传递

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"

【讨论】:

如果您需要添加两个参数,您可以使用空格分隔它们,例如-Darguments="-DskipTests -Dmaven.javadoc.skip=true" 也可以将这些添加到根级 pom.xml 中的发布插件配置中:&lt;configuration&gt;&lt;arguments&gt;-DskipTests -Dmaven.javadoc.skip=true&lt;/arguments&gt;&lt;/configuration&gt; 此外,skipTests 具有更强的风格,它也跳过了测试的编译:-Dmaven.tests.skip=true 哇,为什么 maven 发布插件会这样做……在这个上完全浪费了一些时间 不知何故这对我不起作用【参考方案3】:

您可以使用 maven.javadoc.skip 属性跳过插件的执行,通过 Mojo 的 javadoc。您可以将值指定为 Maven 属性:

<properties>
    <maven.javadoc.skip>true</maven.javadoc.skip>
</properties>

或作为命令行参数:-Dmaven.javadoc.skip=true,跳过 Javadocs 的生成。

【讨论】:

这个答案并没有真正回答这个问题,因为它声明应该通过命令行进行切换。 这是一个多模块项目的完美解决方案,其中几个模块不生成任何 javadoc,否则会导致错误。【参考方案4】:

在根级 pom.xml 中添加发布插件配置:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>

【讨论】:

这不是问题要求的命令行正确,但如果您需要永久禁用 javadoc,它会很好。【参考方案5】:

对于新手 Powershell 用户来说,知道 '.' 很重要。是 Powershell 的一个语法元素,所以开关必须用双引号括起来:

mvn clean install "-Dmaven.javadoc.skip=true"

【讨论】:

谢谢。我一直在寻找这个来设置 VSCode。

以上是关于如何从命令行禁用 Maven Javadoc 插件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Maven 项目的命令行中禁用 jar 创建?

如何在所有模块构建完成后执行maven插件

从命令行运行具有特定路径的maven到某个插件

Maven Javadoc 插件 javadoc-bundle-options

如何从命令行使用Eclipse嵌入式Maven安装?

从命令行运行 Netbeans maven 项目?