Rich DiCroce created MNG-8112:
---------------------------------
Summary: extension.xml is ignored when extension is loaded by
-Dmaven.ext.class.path
Key: MNG-8112
URL: https://issues.apache.org/jira/browse/MNG-8112
Project: Maven
Issue Type: Bug
Components: Class Loading
Affects Versions: 3.9.6
Reporter: Rich DiCroce
As the title says: extension.xml is ignored when an extension is loaded by
-Dmaven.ext.class.path, which makes it impossible to expose any additional
packages.
I am filing this as a bug due to this comment on MNG-6906, which says that
lib/ext and -Dmaven.ext.class.path are supposed to be synonymous. Note that
MNG-6906 is a related but different problem.
When looking at org.apache.maven.cli.MavenCli, the problems aren't too hard to
see:
# lib/ext extensions get loaded into the plexus.core realm (as per m2.conf),
but -Dmaven.ext.class.path extensions are loaded into the maven.ext realm (as
per MavenCli#setupContainerRealm()).
# loadCoreExtensions() operates on the coreRealm, but due to #1, the
extensions are not in that realm. Also, the result of parseExtClasspath() is
not passed to loadCoreExtensions(), so there is no way for loadCoreExtensions()
to find the relevant files.
The most obvious solution would be to call coreRealm.addURL() for each of the
files discovered by parseExtClasspath(). This would solve #1 above which would
implicitly fix #2. Though I don't know if it would have other consequences.
If this is not a bug and is instead "works as designed", then
[https://maven.apache.org/guides/mini/guide-using-extensions.html] needs to be
updated to explain that the three methods of loading core extensions are not
equivalent.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)