Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-7471

Resolver 1.8.0 introduces binary breakage in plugin using Resolver

    XMLWordPrintableJSON

Details

    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!

      Attachments

        Issue Links

          Activity

            People

              cstamas Tamas Cservenak
              cstamas Tamas Cservenak
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: