我可以覆盖 settings.xml(或其他地方)中的单个 Maven 插件设置吗?

Can I override individual maven plugin settings in settings.xml (or elsewhere)?

我的团队使用了一个生成 javadoc 的插件,这使我们的构建时间增加了大约 20 - 30 秒。我从不使用这些 javadoc,所以我想从我的构建中删除它们。

由于各种原因无法更改 POM,因此我无法添加配置文件来有条件地使用它们(即使它们默认为 true!)。

我对 the docs 的阅读表明这在 settings.xml 中是不可能的,因为它是 .

的截断版本并且不包含 .

如何在本地覆盖插件设置?

使用系统跳过属性:

mvn -Dmaven.javadoc.skip=true clean install

您可以使用系统属性更改某些行为,例如配置设置 skipTests 的值绑定到用户 属性 skipTests,因此当您使用 -DskipTests=true 调用 Maven 时,它将隐式设置此值。

但是,这仅在以下情况下有效:a) 您的 POM 依赖于属性来进行配置,b) 您的 POM 到目前为止没有明确设置这些配置设置,并且 c) 它不是一些无法通过属性设置的特殊值,例如配置接受多个值的设置,例如一些 "includes/excludes" 设置。

如果插件可以选择跳过它的 运行 并且您从父 pom 继承它,是的,您可以 "re-define" 子 pom 中的插件配置。 以下是一些可以帮助您的相关答案: Disable a Maven plugin defined in a parent POM