Sorry for the delay in responding. See comments below.
Juraj Burian wrote:
Hi Brett,
I want to take opportunity to talk with you and discuss more than this
case.
Firstly, from my point of view flag optional is named unhappily.
Better name would be transitive/nontransitive with the default value
true/false .
Now that 2.0 is out, we need to stick with the selected name. I think
optional is more descriptive of what it is, and it may be used for other
purposes later.
I would prefer the way of properties, it could be implemented quickly
and without impact to the current implementation.
Currently we have got 2 use cases: AOP plugin and APT plugin.
The approach we selected here was to use a particular scope as a
baseline (if appropriate), and then have includes/excludes in the plugin
configuration for selecting dependencies, such as in the EAR plugin. eg:
<configuration>
<factories>
<factory>groupId:artifactId</factory>
</factories>
</configuration>
This can be selected from the dependency closure, not necessarily the
current POM, but the project declaring it has full control over what it
gets.
But if there is any particular defaults that can be sensibly selected,
they should definitely be selected (for example, WARs bundle all runtime
dependencies by default).
The reason we aren't using groups or properties on dependencies is
because of transitivity: if the property is specified on a dependency in
another project, it is probably not aware that the dependency will or
will not be used for that purpose in another project that depended on
it. Hence the patterns to augment the defaults.
Hope this helps.
Cheers,
Brett
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]