cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter

cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter,java,eclipse,maven,cucumber,Java,Eclipse,Maven,Cucumber,如果我从testrunner中删除插件密钥,它会工作得很好,但是我需要所有这些插件来生成报告,比如jenkins cucumber报告,我已经附上了控制台消息和所有详细信息,请让我知道如何修复,因为我是初学者 下面是POM文件 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> &

如果我从testrunner中删除插件密钥,它会工作得很好,但是我需要所有这些插件来生成报告,比如jenkins cucumber报告,我已经附上了控制台消息和所有详细信息,请让我知道如何修复,因为我是初学者

下面是POM文件

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>

        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>6.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>6.4.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>6.4.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin</artifactId>
    <version>14.0.1</version>
</dependency>
        

        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>de.monochromata.cucumber</groupId>
            <artifactId>reporting-plugin</artifactId>
            <version>4.0.56</version> <!-- this version can be bumped if we also upgrade our Cucumber dependency 
                versions -->
        </dependency>
    

以及项目结构

下面是来自eclipse的控制台错误消息控制台消息


io.cucumber.core.exception.CucumberException: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
    at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
    at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
    at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
    at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
    at io.cucumber.junit.Cucumber.<init>(Cucumber.java:161)
    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.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
    at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
    at de.monochromata.cucumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
    at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:39)
    at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:35)
    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.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
    ... 24 more
Caused by: java.lang.ClassNotFoundException: io.cucumber.core.plugin.JSONFormatter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 33 more


cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter
位于io.cumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
位于io.cumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
位于io.cumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
位于io.cumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
位于io.cumber.core.plugin.Plugins.(Plugins.java:25)
在io.cumber.junit.cumber.(cumber.java:161)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:37)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
位于org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
位于org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
原因:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter
在de.monochrata.cumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
在de.monochrata.cumber.report.PrettyReports.(PrettyReports.java:39)
位于de.monochrata.cumber.report.PrettyReports.(PrettyReports.java:35)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于io.cumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
... 还有24个
原因:java.lang.ClassNotFoundException:io.cucumber.core.plugin.JSONFormatter
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 33多

它在您的代码中说“如果我们同时升级Cucumber依赖项版本,这个版本可能会受到影响”。可能是一个提示。@M.P.Korstanje不,实际上我需要这个依赖项在本地机器中生成一个报告,因为它在Jenkins中运行时会给出结果。我很想弄清楚,这是由于这个插件“`”de.monocarata.cumber.report.PrettyReports:target/prettyrcumber”“``你能告诉我如何在这个testRunner中使用这个插件报告,这样我就可以得到我期望的报告,或者任何其他我可以得到结果的插件,比如Jenkins oneIt在你的代码中说的“如果我们升级Cucumber依赖版本,这个版本可能会被破坏”。可能是一个提示。@M.P.Korstanje不,实际上我需要这个依赖项在本地机器中生成一个报告,因为它在Jenkins中运行时会给出结果。我很想弄清楚,这是由于这个插件“`”de.monocarata.cumber.report.PrettyReports:target/prettyrcumber”“``有人能告诉我如何在这个testRunner中使用这个插件报告,这样我就可以得到我期望的报告,或者任何其他我可以得到像Jenkins one这样的结果的插件吗

io.cucumber.core.exception.CucumberException: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
    at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
    at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
    at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
    at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
    at io.cucumber.junit.Cucumber.<init>(Cucumber.java:161)
    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.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
    at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
    at de.monochromata.cucumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
    at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:39)
    at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:35)
    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.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
    ... 24 more
Caused by: java.lang.ClassNotFoundException: io.cucumber.core.plugin.JSONFormatter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 33 more