我可以覆盖 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
我的团队使用了一个生成 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