[ 
https://issues.apache.org/jira/browse/MNG-8112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17929742#comment-17929742
 ] 

Christoph Läubrich commented on MNG-8112:
-----------------------------------------

Of course I did it here for demonstration purpose. In the end one can know what 
people really do. 

>From https://maven.apache.org/guides/mini/guide-using-extensions.html there is 
>some kind of ordering

* ${maven.home}/lib/ext --> Strongest, should override everything system wide
* mvn -Dmaven.ext.class.path=extension.jar --> will override everything for the 
current run
* .mvn/extensions.xml
* project->build->plugins->plugin with element extensions=true

Given that I declare 
{code}<exportedArtifacts>org.codehaus.plexus:plexus-build-api</exportedArtifacts>{code}
 only one can and should win. That this might not always be logical to do so is 
another point. So I thing in general the problem is that maven do not "know" 
the GAV yet for maven.ext.class.path and therefore can't replace it so lets 
first make this work and then probably work on the other part ;-)

> 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
>            Priority: Major
>         Attachments: image-2025-02-24-13-07-19-735.png
>
>
> 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|https://issues.apache.org/jira/browse/MNG-6906?focusedCommentId=17719869&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17719869]
>  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)

Reply via email to