Ok, I'll take a look. Mark, can you direct me to the source code? But just as a starting point: within Maven, why are you "booting" a completely new resolver instance using ServiceLocator?
But the best would be to have access to the sources.... Thanks T On Thu, Feb 2, 2023 at 4:55 AM Mark Derricutt <m...@talios.com> wrote: > Following up on this. I removed all the [] deps from my plugin but > still seem to get the same issue of the class missing. > > I definitely see the class in my maven 3.9-staged/lib directory, and > have even updated the dependency version in my plugin to match. > > The code in question that's failing is the creation of the Aether > repository system - it's possible this has changed: > > ``` > private static RepositorySystem newRepositorySystem() { > DefaultServiceLocator locator = > MavenRepositorySystemUtils.newServiceLocator(); > locator.addService(RepositoryConnectorFactory.class, > BasicRepositoryConnectorFactory.class); > locator.addService(TransporterFactory.class, > FileTransporterFactory.class); > locator.addService(TransporterFactory.class, > HttpTransporterFactory.class); > return locator.getService(RepositorySystem.class); > } > ``` > > and trace was: > > ``` > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:149) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 > (MojoExecutor.java:341) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute > (MojoExecutor.java:329) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:212) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:174) > at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 > (MojoExecutor.java:75) > at org.apache.maven.lifecycle.internal.MojoExecutor$1.run > (MojoExecutor.java:162) > at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute > (DefaultMojosExecutionStrategy.java:37) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:159) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:104) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:72) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > > (SingleThreadedBuilder.java:52) > at org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:117) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:259) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:171) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:99) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:820) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:269) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:191) > at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:498) > at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced > (Launcher.java:282) > at org.codehaus.plexus.classworlds.launcher.Launcher.launch > (Launcher.java:225) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > (Launcher.java:406) > at org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:347) > Caused by: java.lang.NoClassDefFoundError: > org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory > at > com.smxemail.rangeresolver.lang.RepositoryResolver.newRepositorySystem > (RepositoryResolver.java:123) > at com.smxemail.rangeresolver.lang.RepositoryResolver.<init> > (RepositoryResolver.java:108) > at > com.smxemail.rangeresolver.lang.RepositoryResolver.createRepositoryResolver > > (RepositoryResolver.java:118) > at com.smxemail.rangeresolver.mojo.RangeResolverMojo.execute > (RangeResolverMojo.java:113) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:125) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 > (MojoExecutor.java:341) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute > (MojoExecutor.java:329) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:212) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:174) > at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 > (MojoExecutor.java:75) > at org.apache.maven.lifecycle.internal.MojoExecutor$1.run > (MojoExecutor.java:162) > at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute > (DefaultMojosExecutionStrategy.java:37) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:159) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:104) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:72) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > > (SingleThreadedBuilder.java:52) > at org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:117) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:259) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:171) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:99) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:820) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:269) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:191) > at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:498) > at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced > (Launcher.java:282) > at org.codehaus.plexus.classworlds.launcher.Launcher.launch > (Launcher.java:225) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > (Launcher.java:406) > at org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:347) > Caused by: java.lang.ClassNotFoundException: > org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory > at > org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass > (SelfFirstStrategy.java:50) > at > org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass > (ClassRealm.java:271) > at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass > (ClassRealm.java:247) > at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass > (ClassRealm.java:239) > at > com.smxemail.rangeresolver.lang.RepositoryResolver.newRepositorySystem > (RepositoryResolver.java:123) > at com.smxemail.rangeresolver.lang.RepositoryResolver.<init> > (RepositoryResolver.java:108) > at > com.smxemail.rangeresolver.lang.RepositoryResolver.createRepositoryResolver > > (RepositoryResolver.java:118) > ``` > > I see the class is included in the `maven-resolver-impl-1.9.4.jar` file > but that doesn't appear to be in the class path: > > > ``` > at org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:347) > Caused by: org.apache.maven.plugin.PluginContainerException: A required > class was missing while executing > com.smxemail:rangeresolver-maven-plugin:1.1.59-SNAPSHOT:resolve-deps: > org/eclipse/aether/connector/basic/BasicRepo > ----------------------------------------------------- > realm = > plugin>com.smxemail:rangeresolver-maven-plugin:1.1.59-SNAPSHOT > strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy > urls[0] = > > file:/Users/amrk/.m2/repository/com/smxemail/rangeresolver-maven-plugin/1.1.59-SNAPSHOT/rangeresolver-maven-plugin-1.1.59-SNAPSHOT.jar > urls[1] = > file:/Users/amrk/.m2/repository/com/smxemail/com.smxemail.rangeresolver/ > 1.1.34.2-SNAPSHOT/com.smxemail.rangeresolver-1.1.34.2-SNAPSHOT.jar > urls[2] = > > file:/Users/amrk/.m2/repository/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar > urls[3] = > > file:/Users/amrk/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar > urls[4] = > > file:/Users/amrk/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.4/maven-resolver-named-locks-1.9.4.jar > urls[5] = > > file:/Users/amrk/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.9.4/maven-resolver-transport-file-1.9.4.jar > urls[6] = > > file:/Users/amrk/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.9.4/maven-resolver-transport-http-1.9.4.jar > urls[7] = > > file:/Users/amrk/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar > urls[8] = > > file:/Users/amrk/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar > urls[9] = > > file:/Users/amrk/.m2/repository/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15.jar > urls[10] = > > file:/Users/amrk/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar > urls[11] = > > file:/Users/amrk/.m2/repository/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar > urls[12] = > > file:/Users/amrk/.m2/repository/io/vavr/vavr/1.0.0-alpha-4/vavr-1.0.0-alpha-4.jar > urls[13] = > > file:/Users/amrk/.m2/repository/org/antlr/antlr4-runtime/4.9.3/antlr4-runtime-4.9.3.jar > urls[14] = > > file:/Users/amrk/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar > urls[15] = > > file:/Users/amrk/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar > urls[16] = > > file:/Users/amrk/.m2/repository/org/apache/maven/maven-builder-support/3.5.2/maven-builder-support-3.5.2.jar > urls[17] = > > file:/Users/amrk/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar > urls[18] = > > file:/Users/amrk/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar > urls[19] = > > file:/Users/amrk/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar > urls[20] = > > file:/Users/amrk/.m2/repository/com/google/inject/guice/4.0/guice-4.0-no_aop.jar > urls[21] = > > file:/Users/amrk/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar > urls[22] = > > file:/Users/amrk/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar > urls[23] = > > file:/Users/amrk/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.jar > urls[24] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-api/1.9.5/maven-scm-api-1.9.5.jar > urls[25] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-manager-plexus/1.9.5/maven-scm-manager-plexus-1.9.5.jar > urls[26] = > file:/Users/amrk/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar > urls[27] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-providers-standard/1.9.5/maven-scm-providers-standard-1.9.5.pom > urls[28] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-accurev/1.9.5/maven-scm-provider-accurev-1.9.5.jar > urls[29] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-bazaar/1.9.5/maven-scm-provider-bazaar-1.9.5.jar > urls[30] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-clearcase/1.9.5/maven-scm-provider-clearcase-1.9.5.jar > urls[31] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-cvsexe/1.9.5/maven-scm-provider-cvsexe-1.9.5.jar > urls[32] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-cvs-commons/1.9.5/maven-scm-provider-cvs-commons-1.9.5.jar > urls[33] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-cvsjava/1.9.5/maven-scm-provider-cvsjava-1.9.5.jar > urls[34] = > > file:/Users/amrk/.m2/repository/org/netbeans/lib/cvsclient/20060125/cvsclient-20060125.jar > urls[35] = > > file:/Users/amrk/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar > urls[36] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-gitexe/1.9.5/maven-scm-provider-gitexe-1.9.5.jar > urls[37] = > > file:/Users/amrk/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar > urls[38] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-git-commons/1.9.5/maven-scm-provider-git-commons-1.9.5.jar > urls[39] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-jgit/1.9.5/maven-scm-provider-jgit-1.9.5.jar > urls[40] = > file:/Users/amrk/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/3.7.1. > 201504261725-r/org.eclipse.jgit-3.7.1.201504261725-r.jar > urls[41] = > file:/Users/amrk/.m2/repository/com/jcraft/jsch/0.1.50/jsch-0.1.50.jar > urls[42] = > > file:/Users/amrk/.m2/repository/com/googlecode/javaewah/JavaEWAH/0.7.9/JavaEWAH-0.7.9.jar > urls[43] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-hg/1.9.5/maven-scm-provider-hg-1.9.5.jar > urls[44] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-perforce/1.9.5/maven-scm-provider-perforce-1.9.5.jar > urls[45] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-starteam/1.9.5/maven-scm-provider-starteam-1.9.5.jar > urls[46] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-svnexe/1.9.5/maven-scm-provider-svnexe-1.9.5.jar > urls[47] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-svn-commons/1.9.5/maven-scm-provider-svn-commons-1.9.5.jar > urls[48] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-synergy/1.9.5/maven-scm-provider-synergy-1.9.5.jar > urls[49] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-vss/1.9.5/maven-scm-provider-vss-1.9.5.jar > urls[50] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-tfs/1.9.5/maven-scm-provider-tfs-1.9.5.jar > urls[51] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-integrity/1.9.5/maven-scm-provider-integrity-1.9.5.jar > urls[52] = > > file:/Users/amrk/.m2/repository/com/mks/api/mksapi-jar/4.10.9049/mksapi-jar-4.10.9049.jar > urls[53] = > > file:/Users/amrk/.m2/repository/org/codehaus/groovy/groovy-all/1.7.6/groovy-all-1.7.6.jar > urls[54] = > > file:/Users/amrk/.m2/repository/org/apache/maven/scm/maven-scm-provider-jazz/1.9.5/maven-scm-provider-jazz-1.9.5.jar > urls[55] = > > file:/Users/amrk/.m2/repository/org/apache/maven/shared/maven-filtering/1.3/maven-filtering-1.3.jar > urls[56] = > > file:/Users/amrk/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar > urls[57] = > > file:/Users/amrk/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19.jar > urls[58] = > > file:/Users/amrk/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar > urls[59] = > > file:/Users/amrk/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar > urls[60] = > > file:/Users/amrk/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar > urls[61] = > > file:/Users/amrk/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar > urls[62] = > file:/Users/amrk/.m2/repository/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar > Number of foreign imports: 1 > import: Entry[import from realm > ClassRealm[project>com.smxemail:rangeresolver-maven-plugin:1.1.59-SNAPSHOT, > > parent: ClassRealm[maven.api, parent: null]]] > ``` > > Mark > > > > > > > On 24 Jan 2023, at 21:22, Tamás Cservenák wrote: > > > Mark, > > > > Can you provide more information about this error? > > > > I understand if this plugin is internal (not OSS), but can you provide > > me > > > > the POM of it, or at least the dependencies snippet related to Maven > > and > > > > resolver? > > > > "A required class is missing" is strange, especially as > > > > BasicRepositoryConnectorFactory is provided by Maven itself? > > > > Thanks > > > > Tamas > > > --- > "The ease with which a change can be implemented has no relevance at all > to whether it is the right change for the (Java) Platform for all time." > — Mark Reinhold. > > Mark Derricutt > http://www.chaliceofblood.net > http://www.theoryinpractice.net > http://twitter.com/talios > http://facebook.com/mderricutt >