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]

Reply via email to