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


231

在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>

有什么办法可以从命令行关闭它吗?

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

Answers:


437

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

-Dmaven.javadoc.skip=true

(不是假的)


1
有关使用子模块的方法,请参见@ Christoph-Tobias Schenke答案。
ecoe

也可以在jenkins中直接设置此参数来避免此问题(在Configure System中定义的Global MAVEN_OPTS中)
Midas国王

11
这对我不起作用,但是了解到,当您使用Maven发布插件时,需要以不同的方式传递此参数。这工作:mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"
PATS

181

看来,简单的方法

-Dmaven.javadoc.skip=true

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

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

9
如果您需要添加两个参数,则可以使用这样的空格将它们分开-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Graham

4
它还可以将这些添加到根级别pom.xml中的发布插件配置中:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
nclark '16

1
此外,skipTests具有更强的风味,它也跳过了测试的编译:-Dmaven.tests.skip=true
nclark '16

120

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

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

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


1
这个答案并没有真正回答这个问题,因为在那里指出应该通过命令行来完成切换。
西妮莎·米哈伊洛夫斯基(Sinisha Mihajlovski)

3
对于具有多个模块而不生成任何javadoc并导致其他错误的多模块项目,这是一个完美的解决方案。
伊曼纽尔·布尔格

19

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

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

这不是问题所要求的从命令行正确执行的操作,但是如果您需要永久禁用Javadoc,那么它将非常有用。
洛伦佐·史考托

1

对于新手Powershell用户,重要的是要知道“。”。是Powershell的语法元素,因此该开关必须用双引号引起来:

mvn全新安装“ -Dmaven.javadoc.skip = true”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.