[
https://jira.codehaus.org/browse/MNG-5771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Herve Boutemy updated MNG-5771:
-------------------------------
Description:
As of version 3.2.5 maven provides two mechanisms to contribute additional
components to maven core runtime. It is possible to add component jars to
{{$M2_HOME/lib/ext directory}}. It is also possible to specify component jars
using {{-Dmaven.ext.class.path}} command line parameter. Neither of the
mechanisms is user friendly. In both cases, the user is expected to manually
locate and download all required jar file. In both cases, this has to be done
on all systems where the extensions are needed. In both cases, all extra jars
are loaded into single classloader so all extensions must agree of the same set
of dependencies.
This jira is to track changes needed to make it possible to configure core
extensions in terms of groupId/artifactId/version and share set of required
extensions across multiple systems.
More specifically,
* introduce new ${maven.projectBasedir}/.mvn/extensions.xml descriptor to
specify list of extensions. Initially, the descriptor will only allow
specification of extension groupId/artifactId/version, but can be extended to
support dependency includes/excludes mechanism and configuration parameters
later
{code}
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
<extension>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</extension>
<extension>...</extension>
...
</extensions>
{code}
* change maven to read and load core extensions in separate class realms as
part of plexus container setup.
* provide mechanism for extensions to declare exported artifacts and packages
using META-INF/maven/extension.xml descriptor.
was:
As of version 3.2.5 maven provides two mechanisms to contribute additional
components to maven core runtime. It is possible to add component jars to
$M2_HOME/lib/ext directory. It is also possible to specify component jars using
-Dmaven.ext.class.path command line parameter. Neither of the mechanisms is
user friendly. In both cases the user is expected to manually locate and
download all required jar file. In both cases this has to be done on all
systems where the extensions are needed. In both cases all extra jars are
loaded into single classloader so all extensions must agree of the same set of
dependencies.
This jira is to track changes needed to make it possible to configure core
extensions in terms of groupId/artifactId/version and share set of required
extensions across multiple systems.
More specifically,
* introduce new ${maven.projectBasedir}/.mvn/extensions.xml descriptor to
specify list of extensions. Initially, the descriptor will only allow
specification of extension groupId/artifactId/version, but can be extended to
support dependency includes/excludes mechanism and configuration parameters
later
{code}
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
<extension>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</extension>
<extension>...</extension>
...
</extensions>
{code}
* change maven to read and load core extensions in separate class realms as
part of plexus container setup.
* provide mechanism for extensions to declare exported artifacts and packages
using META-INF/maven/extension.xml descriptor.
> user-configurable core extensions mechanism
> -------------------------------------------
>
> Key: MNG-5771
> URL: https://jira.codehaus.org/browse/MNG-5771
> Project: Maven
> Issue Type: Improvement
> Components: Class Loading
> Reporter: Igor Fedorenko
> Assignee: Igor Fedorenko
> Fix For: 3.3.0
>
>
> As of version 3.2.5 maven provides two mechanisms to contribute additional
> components to maven core runtime. It is possible to add component jars to
> {{$M2_HOME/lib/ext directory}}. It is also possible to specify component jars
> using {{-Dmaven.ext.class.path}} command line parameter. Neither of the
> mechanisms is user friendly. In both cases, the user is expected to manually
> locate and download all required jar file. In both cases, this has to be done
> on all systems where the extensions are needed. In both cases, all extra jars
> are loaded into single classloader so all extensions must agree of the same
> set of dependencies.
> This jira is to track changes needed to make it possible to configure core
> extensions in terms of groupId/artifactId/version and share set of required
> extensions across multiple systems.
> More specifically,
> * introduce new ${maven.projectBasedir}/.mvn/extensions.xml descriptor to
> specify list of extensions. Initially, the descriptor will only allow
> specification of extension groupId/artifactId/version, but can be extended to
> support dependency includes/excludes mechanism and configuration parameters
> later
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <extensions>
> <extension>
> <groupId>...</groupId>
> <artifactId>...</artifactId>
> <version>...</version>
> </extension>
> <extension>...</extension>
> ...
> </extensions>
> {code}
> * change maven to read and load core extensions in separate class realms as
> part of plexus container setup.
> * provide mechanism for extensions to declare exported artifacts and packages
> using META-INF/maven/extension.xml descriptor.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)