Hi,
I would appreciate some comments on the above issue MNG-2103 where users
requested that plugin.execution.inherited generally overrides
plugin.inherited.
Considering the three possible values for the inherited field (true !=
false != null), we currently determine the inheritance of an execution
based on
inherited = (plugin.execution.inherited != false) &&
(plugin.inherited != false)
i.e. explicitly setting inherited=false at either the plugin or the
execution level stops the inheritance.
In contrast, the issue requests the logic
inherited = (plugin.execution.inherited == true) ||
(plugin.execution.inherited == null && plugin.inherited != false)
i.e. the plugin level setting provides a default that can be overriden
at execution level. This mode would also raise the question what happens
to plugin-level configuration if plugin.inherited=false but
plugin.execution.inherited=true.
This would be a significant change in behavior that could negatively
affect existing builds. The one scenario I could think of is an
inheritance hierarchy like
A (plugin.inherited=true)
+- B (plugin.inherited=false)
+- C (no more inheritance here)
i.e. the parent POM B can currently disable any plugin execution
inheritance to its children by just setting plugin.inherited=false,
regardless what the plugin.execution.inherited field of any execution
says. The changed logic would require POM B to override the inherited
flag of each execution that has inherited=true.
So do we want to change the existing behavior or not?
Benjamin
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]