如何从命令行禁用 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 中的发布插件配置中:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
此外,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 插件?的主要内容,如果未能解决你的问题,请参考以下文章