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