Hi,

I would like to propose an extension of the mojo annotation

  @requiresDependencyResolution <requiredScope>

This currently allows to resolve only a single scope from the set "compile", "runtime" and "test". A problem I have seen in some plugins is about using "runtime" scope. This scope is not a superset of "compile" as it excludes "system" and "provided" scoped dependendies. However, sometimes plugins really want the aggregation of "compile" and "runtime", see [0], [1] and [2] for some use cases that I could quickly recover.

Hence I suggest we extend the mojo annotation to support the specification of multiple scopes, e.g.

  @requiresDependencyResolution compile,runtime

or deprecate the existing anno and create a new annotation like

  @resolveDependencies compile,runtime

The first approach would not require an udpate of the plugin tools but lacks any migration path for plugins to run with old and new Maven versions. Once the multiple scopes are listed in the anno, the plugin's prerequisite would need to be bumped to the newer Maven version.

The second approach would need a few updates to the plugin tools like extracting the new anno and writing it into the plugin descriptor, e.g. as a new field

<dependencyResolutionScopes>compile,runtime</dependencyResolutionScopes>

This way would allow plugins to specify both @requiresDependencyResolution and the new annotation. New Maven versions would give the new annotation precedence. The plugin could check the Maven version and see whether it can trust the dependency sets in the MavenProject or whether it needs its 2.0.x workaround code.

WDYT?


Benjamin


[0] http://jira.codehaus.org/browse/MEXEC-51
[1] http://jira.codehaus.org/browse/MGWT-77
[2] http://code.google.com/p/gwt-maven/issues/detail?id=161

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to