-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

+1, esp. the last bit about the new plugin element.

Brett Porter wrote:
| Hi,
|
| Ref: MNG-598, MNG-226
|
| We have "build extensions" - ie providers for wagon, scm that are not
| really plugins but additional providers for a particular plexus role.
| Currently, these need to be dropped into M2_HOME/lib along with their
| dependencies which is not ideal. (SCM ones can be a dependency on the
| SCM/release plugin, but there is no scope to later add a new one). In
| the future, repository metadata might help us locate plexus components
| with a particular role and role hint, but this will hold us over until
then.
|
| While we should still make the "standard" ones available out of the box,
| it needs to be easy to add more via the project in a reproducible way,
| so I propose:
|
| <build>
|   <extensions>
|     <extension>
|       <groupId>org.apache.maven.wagon</groupId>
|       <artifactId>wagon-ftp</artifactId>
|       <version>1.0-alpha-4</version>
|     </extension>
|   </extensions>
| </build>
|
| This is here instead of in dependencies for clarity and so that you can
| use them both as an extension and as a dependency without having to
| worry about matching versions or scope.
|  Extensions are:
| - inherited from the parent
| - have NO configuration
| - the version can be omitted (use RELEASE) or use ranges like a plugin
| and will be populated by the release plugin
|
| At execution, it needs to be available to the core code (eg
| DefaultWagonManager), and also particular plugins (eg maven-scm-plugin).
| For now, I just intend to push the extensions into the core classloader.
| I think we might eventually need to construct a per-project execution
| realm as a basis for plugin realms and recreate those plugin realms for
| each project (currently it is only ever created for one plugin - so
| mutliple versions of a plugin might have problems).
|
| This would be very inconvenient for adding plugins that provide type and
| packaging handlers, but we don't want to have to resolve and search all
| the plugins to find a missing dependency type. For this, we can add
| <extensions>true|false</extensions> to the <plugin/> element, eg:
|
| <plugin>
|   <groupId>org.codehaus.plexus</groupId>
|   <artifactId>plexus-maven-plugin</artifactId>
|   <extensions>true</extensions>
|   <configuration>
|     ...
|   </configuration>
| </plugin>
|
| This will indicate to the plugin manager to pre-load those plugins, and
| to search it for any plexus components. When the lifecycle executor is
| looking for a packaging handler, it will have to search those plugin
| containers also.
|
| How does this sound?
|
| - Brett
|
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]
|
|
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFC4R+GK3h2CZwO/4URAmscAJ0dwTgdEuG990qV9ff1fMfrnNe/9ACgmb38
rM0R/zztaiZHegZeiTMrb2M=
=vUKH
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to