iti-ict / wakamiti

BDD testing tool using step libraries
https://iti-ict.github.io/wakamiti/
Mozilla Public License 2.0
33 stars 5 forks source link

No encuentra la librería de junit cuando intenta cargar el plugin-rest #210

Closed mgalbis closed 1 year ago

mgalbis commented 1 year ago

Cuando se intenta lanzar Wakamiti desde el plugin de maven, ocurre un error de ClassNotFoundException con la librería de junit:

constituent[0]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/conf/logging/
constituent[1]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/commons-cli-1.4.jar
constituent[1]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/commons-cli-1.4.jar
constituent[2]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/commons-io-2.6.jar
constituent[3]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/commons-lang3-3.8.1.jar
constituent[4]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/guava-25.1-android.jar
constituent[5]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/guice-4.2.2-no_aop.jar
constituent[6]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/jansi-2.4.0.jar
constituent[7]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/javax.annotation-api-1.2.jar
constituent[8]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/javax.inject-1.jar
constituent[9]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/jcl-over-slf4j-1.7.36.jar
constituent[10]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-artifact-3.8.6.jar
constituent[11]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-builder-support-3.8.6.jar
constituent[12]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-compat-3.8.6.jar
constituent[13]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-core-3.8.6.jar
constituent[14]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-embedder-3.8.6.jar
constituent[15]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-model-3.8.6.jar
constituent[16]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-model-builder-3.8.6.jar
constituent[16]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-model-builder-3.8.6.jar
constituent[17]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-plugin-api-3.8.6.jar
constituent[18]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-repository-metadata-3.8.6.jar
constituent[19]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-api-1.6.3.jar
constituent[20]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-connector-basic-1.6.3.jar
constituent[21]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-impl-1.6.3.jar
constituent[22]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-provider-3.8.6.jar
constituent[23]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-spi-1.6.3.jar
constituent[24]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-transport-wagon-1.6.3.jar
constituent[25]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-resolver-util-1.6.3.jar
constituent[26]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-settings-3.8.6.jar
constituent[27]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-settings-builder-3.8.6.jar
constituent[28]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-shared-utils-3.3.4.jar
constituent[29]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/maven-slf4j-provider-3.8.6.jar
constituent[30]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/org.eclipse.sisu.inject-0.3.5.jar
constituent[31]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/org.eclipse.sisu.plexus-0.3.5.jar
constituent[32]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/plexus-cipher-2.0.jar
constituent[33]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/plexus-component-annotations-2.1.0.jar
constituent[34]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/plexus-interpolation-1.26.jar
constituent[35]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/plexus-sec-dispatcher-2.0.jar
constituent[36]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/plexus-utils-3.3.1.jar
constituent[37]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/slf4j-api-1.7.36.jar
constituent[38]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/wagon-file-3.5.1.jar
constituent[39]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/wagon-http-3.5.1-shaded.jar
constituent[40]: file:/C:/Users/mgalbis/.m2/wrapper/dists/apache-maven-3.8.6-bin/1ks0nkde5v1pk9vtc31i9d0lcd/apache-maven-3.8.6/lib/wagon-provider-api-3.5.1.jar
---------------------------------------------------
Exception in thread "main" Exception in thread "main" java.util.ServiceConfigurationError: es.iti.wakamiti.api.extensions.StepContributor: Provider es.iti.wakamiti.rest.RestStepContributor could not be instantiated
java.util.ServiceConfigurationError: es.iti.wakamiti.api.extensions.StepContributor: Provider es.iti.wakamiti.rest.RestStepContributor could not be instantiated
    at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:582)
    at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:804)
    at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:722)
    at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1395)
    at es.iti.commons.jext.ExtensionManager.collectValidExtensions(ExtensionManager.java:261)
    at es.iti.commons.jext.ExtensionManager.obtainValidExtensions(ExtensionManager.java:239)
    at es.iti.commons.jext.ExtensionManager.obtainCachedValidExtensions(ExtensionManager.java:226)
    at es.iti.commons.jext.ExtensionManager.loadAll(ExtensionManager.java:187)
    at es.iti.commons.jext.ExtensionManager.getExtensionsThatSatisfyMetadata(ExtensionManager.java:182)
    at es.iti.wakamiti.api.WakamitiContributors.createStepContributors(WakamitiContributors.java:126)
    at es.iti.wakamiti.core.backend.DefaultBackendFactory.createStepContributors(DefaultBackendFactory.java:152)
    at es.iti.wakamiti.core.backend.DefaultBackendFactory.doCreateBackend(DefaultBackendFactory.java:95)
    at es.iti.wakamiti.core.backend.DefaultBackendFactory.createBackend(DefaultBackendFactory.java:74)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.getBackend(PlanNodeRunner.java:75)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.lambda$createChildren$4(PlanNodeRunner.java:161)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.createChildren(PlanNodeRunner.java:164)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.getChildren(PlanNodeRunner.java:64)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runNode(PlanNodeRunner.java:105)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:558)
    at java.base/java.util.stream.ReferencePipeline.max(ReferencePipeline.java:594)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runChildren(PlanNodeRunner.java:126)
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runNode(PlanNodeRunner.java:109)
    at es.iti.wakamiti.core.runner.PlanRunner.run(PlanRunner.java:61)
    at es.iti.wakamiti.core.Wakamiti.executePlan(Wakamiti.java:345)
    at es.iti.wakamiti.maven.WakamitiVerifyMojo.execute(WakamitiVerifyMojo.java:142)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:196)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    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)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: java.util.ServiceConfigurationError: es.iti.wakamiti.rest.ContentTypeHelper: es.iti.wakamiti.rest.helpers.TextHelper Unable to get public no-arg constructor
    at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:582)
    at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:673)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1233)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1265)
    at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300)
    at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385)
    at es.iti.commons.jext.ExtensionManager.collectValidExtensions(ExtensionManager.java:261)
    at es.iti.commons.jext.ExtensionManager.obtainValidExtensions(ExtensionManager.java:239)
    at es.iti.commons.jext.ExtensionManager.obtainCachedValidExtensions(ExtensionManager.java:226)
    at es.iti.commons.jext.ExtensionManager.loadAll(ExtensionManager.java:187)
    at es.iti.commons.jext.ExtensionManager.getExtensions(ExtensionManager.java:151)
    at es.iti.wakamiti.rest.RestSupport.<init>(RestSupport.java:48)
    at es.iti.wakamiti.rest.RestStepContributor.<init>(RestStepContributor.java:41)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:780)
    ... 61 more
Caused by: java.lang.NoClassDefFoundError: org/junit/ComparisonFailure
    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
    at java.base/java.lang.Class.getConstructor0(Class.java:3342)
    at java.base/java.lang.Class.getConstructor(Class.java:2151)
    at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:660)
    at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:657)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:668)
    ... 77 more
Caused by: java.lang.ClassNotFoundException: org.junit.ComparisonFailure
    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)
    ... 85 more

Parece ser que está utilizando versiones más recientes de junit5:

[INFO] --- wakamiti-maven-plugin:2.3.2:verify (default) @ spring-verify-example ---
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.1/junit-bom-5.7.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.1/junit-bom-5.7.1.pom (5.1 kB at 73 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.2/junit-bom-5.9.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.2/junit-bom-5.9.2.pom (5.6 kB at 113 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.3/junit-bom-5.9.3.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.3/junit-bom-5.9.3.pom (5.6 kB at 91 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/junit/junit/4.13.2/junit-4.13.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/junit/junit/4.13.2/junit-4.13.2.pom (27 kB at 750 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.pom (5.1 kB at 170 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.0/junit-bom-5.9.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.0/junit-bom-5.9.0.pom (5.6 kB at 148 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.0/junit-bom-5.8.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.0/junit-bom-5.8.0.pom (5.6 kB at 166 kB/s)

Para solucionarlo, lo más efectivo sería incluir la librería de junit que se usa en wakamiti (4.13.2), en el dependencyManagement del pom wakamiti-starter.

Relacionados: #189