[
https://issues.apache.org/jira/browse/MNG-7471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tamás Cservenák updated MNG-7471:
---------------------------------
Description:
With Maven 3.9.0-SNAPSHOT (post MNG-7453 done) there is a binary breakage
introduced for plugins using Resolver, as proven by new IT MNG-7470.
Problem is following:
Maven Core exports following packages:
* resolver-api
* resolver-spi
* resolver-impl
While plugin will have added its "own" versions of these below to plugin realm:
* resolver-util
* resolver-connector-basic
This means, that a plugin will be forced to use api/spi/imp from core (1.8.0),
but they will keep using their own util and connector-basic.
Resolver 1.8.0 introduces API changes that affects all of impl, connector-basic
and spi, basically their own copy of connector-basic will fail. The interface
change from resolver-spi will prevent class from resolver-connector-basic to be
instantiated.
Error that is thrown during execution of plugin using Resolver:
{{Caused by: org.apache.maven.plugin.PluginContainerException: An API
incompatibility was encountered while executing
io.quarkus:quarkus-maven-plugin:2.3.1.Final:build: java.lang.NoSuchMethodError:
'java.util.List
org.eclipse.aether.spi.connector.layout.RepositoryLayout.getChecksums(org.eclipse.aether.artifact.Artifact,
boolean, java.net.URI)'}}
Important note: the error is triggered only when remote download happens, so
even IT will pass OK with 3.9.0-SNAPSHOT IF local repository is pre-populated,
hence, no remote download happens!
was:
With Maven 3.9.0-SNAPSHOT (post MNG-7453 done) there is a binary breakage
introduced for plugins using Resolver, as proven by new IT MNG-7470.
Problem is following:
Maven Core exports following packages:
* resolver-api
* resolver-spi
* resolver-impl
This means, that a plugin will be forced to use these from core (1.8.0), but
they will keep using their own resolver-connector-basic. Resolver 1.8.0
introduces API changes that affects all of impl, connector-basic and spi,
basically their own copy of connector-basic will fail.
So plugin will have added its "own" dependencies to plugin realm with:
* resolver-util
* resolver-connector-basic
But alas, the interface change from resolver-spi will prevent class from
resolver-connector-basic to be instantiated.
Error that is thrown during execution of plugin using Resolver:
{{Caused by: org.apache.maven.plugin.PluginContainerException: An API
incompatibility was encountered while executing
io.quarkus:quarkus-maven-plugin:2.3.1.Final:build: java.lang.NoSuchMethodError:
'java.util.List
org.eclipse.aether.spi.connector.layout.RepositoryLayout.getChecksums(org.eclipse.aether.artifact.Artifact,
boolean, java.net.URI)'}}
Important note: the error is triggered only when remote download happens, so
even IT will pass OK with 3.9.0-SNAPSHOT IF local repository is pre-populated,
hence, no remote download happens!
> Resolver 1.8.0 introduces binary breakage in plugin using Resolver
> ------------------------------------------------------------------
>
> Key: MNG-7471
> URL: https://issues.apache.org/jira/browse/MNG-7471
> Project: Maven
> Issue Type: Bug
> Components: Class Loading
> Affects Versions: 3.9.0-candidate
> Reporter: Tamás Cservenák
> Priority: Major
>
> With Maven 3.9.0-SNAPSHOT (post MNG-7453 done) there is a binary breakage
> introduced for plugins using Resolver, as proven by new IT MNG-7470.
> Problem is following:
> Maven Core exports following packages:
> * resolver-api
> * resolver-spi
> * resolver-impl
> While plugin will have added its "own" versions of these below to plugin
> realm:
> * resolver-util
> * resolver-connector-basic
> This means, that a plugin will be forced to use api/spi/imp from core
> (1.8.0), but they will keep using their own util and connector-basic.
> Resolver 1.8.0 introduces API changes that affects all of impl,
> connector-basic and spi, basically their own copy of connector-basic will
> fail. The interface change from resolver-spi will prevent class from
> resolver-connector-basic to be instantiated.
> Error that is thrown during execution of plugin using Resolver:
> {{Caused by: org.apache.maven.plugin.PluginContainerException: An API
> incompatibility was encountered while executing
> io.quarkus:quarkus-maven-plugin:2.3.1.Final:build:
> java.lang.NoSuchMethodError: 'java.util.List
> org.eclipse.aether.spi.connector.layout.RepositoryLayout.getChecksums(org.eclipse.aether.artifact.Artifact,
> boolean, java.net.URI)'}}
> Important note: the error is triggered only when remote download happens, so
> even IT will pass OK with 3.9.0-SNAPSHOT IF local repository is
> pre-populated, hence, no remote download happens!
--
This message was sent by Atlassian Jira
(v8.20.7#820007)