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."
> &mdash; Mark Reinhold.
>
> Mark Derricutt
> http://www.chaliceofblood.net
> http://www.theoryinpractice.net
> http://twitter.com/talios
> http://facebook.com/mderricutt
>

Reply via email to