IntelliJ社区maven pom.xml错误,提示cucumber jar版本冲突



我在我的maven pom.xml文件中得到了这个版本冲突错误:

无法解决[io.cucument:coucument-core:jar:6.11.0->io之间的版本冲突。cucument:messages:jar:15.0.0,io.cucument:Coucument-core:jaer:6.11.0->io.Cucument.html格式化程序:jar:13.0.0-<io.黄瓜:messages:jar:[15.0.0,16.0.0[15.0.0,16.0.0),io。黄瓜:小黄瓜:jar:21.0.0->io。黄瓜;消息:jar:[17.1.0,18.0.0)]

这是完整的pom.xml代码,请使用IntelliJ社区2021.2.2 帮助修复此问题

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SeleniumCucumber</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>6.11.0</version>
</dependency>


<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-html -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-html</artifactId>
<version>0.2.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sourceforge.cobertura/cobertura -->
<dependency>
<groupId>net.sourceforge.cobertura</groupId>
<artifactId>cobertura</artifactId>
<version>2.1.1</version>
<scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.0.0-RC1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm-deps -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.6</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.masterthought/cucumber-reporting -->
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>5.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>gherkin</artifactId>
<version>21.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>

</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

在将小黄瓜版本更新到18.0.0后,依赖部分得到了修复,但在运行测试运行程序时,我得到了以下错误:

";C: \Program Files\Java\jdk1.8.0_301\bin\Java.exe&quot-ea-DnodeNamesHandler=org.getbrain.plugins.cucumber.java.run.CucumberTestTreeNodeManager-Didea.test.cyclic.buffer.size=1048576"-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.2\lib\IDEA_rt.jar=57593:C:\Program Files\JetBrains\IIntelliJ IDEA Community Edition 2021.2.2\bin&quot-Dfile.concoding=UTF-8-类路径";C: \Program Files\JetBrains\IntelliJ IDEA社区版2021.2.2\lib\IDEA_rt.jar;C: \Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.2\plugins\junit\lib\junit5-rt.jar;C: \Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.2\plugins\junit\lib\junit-rt.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\charsets.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\deploy.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\access-bridge-64.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\cldrddata.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\dnsnsns.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\jaccess.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\jfxrt.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\localedata.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\nashorn.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunec.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunjce_provider.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunmscapi.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunpkcs11.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\ext\zipfs.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\javaws.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\jce.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\jfr.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\jfxswt.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\jsse.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\management-ant.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\plugin.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\resources.jar;C: \Program Files\Java\jdk1.8.0_301\jre\lib\rt.jar;D: \硒\项目\ BDD_Cucumber\目标\测试类;C: \Users\manges.m2\repository\io\cuckle\cuckle java\5.6.0\cucumber-java-56.6.0.jar;C: \Users\manges.m2\repository\io\cuckle\cuckle-core\5.6.0\cucumber-core-56.6.0.jar;C: \Users\mangesh.m2\repository\io\黄瓜\黄瓜小黄瓜\5.6.0\cucumber-gherkin-56.6.0.jar;C: \Users\mangesh.m2\repository\io\黄瓜\黄瓜小黄瓜复古\5.6.0\cucumber-gherkin-vintage-56.6.0.jar;C: \Users\manges.m2\repository\io\cuckles\tag expressions\2.0.4\tag-expressions-2.0.4.jar;C: \Users\manges.m2\repository\io\cuckles\cucumber expressions\8.3.1\cucNumber-expressions-8.3.1.jar;C: \Users\manges.m2\repository\io\cuckle\datatable\3.3.1\datatable-3.3.1.jar;C: \Users\manges.m2\repository\io\cuckle\cuckle-plugin\5.6.0\cucumber-plugin-5.6.0.jar;C: \Users\mangesh.m2\repository\io\cuckle\docstring\5.6.0\docstring-5.60.0.jar;C: \Users\mangesh.m2\repository\org.apiguardian\apiguardianapi\1.1.0\apiguardian-api-1.1.0.jar;C: \Users\manges.m2\repository\junit\junit\0.11\junit-4.11.jar;C: \Users\mangesh.m2\repository\org.hamcrest\hamcrest core\1.3\hamcrest-core-1.3.jar;C: \Users\mangesh.m2\repository\io\cuckles\cucumber junit\7.0.0-RC1\ccucumber-junit-7.0.0-RC1.jar;C: \Users\mangesh.m2\repository\org\seleniumhq\seleniumApi\3.141.59\seleniu-api-3.141.59.jar;C: \Users\mangesh.m2\repository\org.seleniumhq\硒\硒铬驱动程序\3.141.59\硒铬驱动器-3.141.59.jar;C: \Users\mangesh.m2\repository\org\seleniumhq\selenium\selenium远程驱动程序\3.141.59\selenium-remote-driver-3.141.59.jar;C: \Users\mangesh.m2\repository\net\bytebuddy\byte buddy\1.8.15\byte-bddy-1.8.15.jar;C: \Users\manges.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C: \Users\mangesh.m2\repository.com\谷歌\番石榴\番石榴\25.0-jre\番石榴-25.0-jre.jar;C: \Users\manges.m2\repository.com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C: \Users\mangesh.m2\repository\org\checkerframework\checker-compat-qual\2.0.0\checker-compat-quali-2.0.0.jar;C: \Users\managesh.m2\repository\com\google\errorproden\error_prone_annotations\2.1.3\error_prone _annotations-2.1.3.jar;C: \Users\manges.m2\repository\com\google\j2objc\j2objc annotations\1.1\j2obj-annotations-1.1.jar;C: \Users\mangesh.m2\repository\org\codehaus\mojo\aanimal-siffer-annotations\1.14\aanimal-shiffer-annorations-1.14.jar;C: \Users\mangesh.m2\repository\com\squareup\okhttp3\okhttp\3.11.0\okhttp-3.11.0.jar;C: \Users\mangesh.m2\repository\com\squareeup\okio\okio\ 1.14.0\okio-1.140.jar;C: \Users\mangesh\AppData\Roaming\JetBrains\IdeaIC2021.2\plugins\cucumber java\lib\ cucumber jvm Formatter.jar"com.intellij.rt.junit.JUnitStarter-ideVersion5-junit4 TestRunner.TestRunnerjava.lang.AbstractMethodError:io.cucumer.junit.JUnitCucumberOptionsProvider$JunitCunumerOptions.tags()[Ljava/lang/String;位于io.cocumber.core.options.CuccumberOptionsAnnationParser.addTags(CucumberOptionsAnnationParser.java:90)位于io.cocumber.core.options.CuccumberOptionsAnnationParser.parse(CucumberOptionsAnnationParser.java:51)在io。黄瓜。杜松子。黄瓜。(黄瓜。java:120)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)网址:org.junit.internal.builder.AnnotatedBuilder.buildRunner(Annotateduilder.java:29)网址:org.junit.internal.builder.AnnotatedBuilder.runnerForClass(Annotateduilder.java:21)网址:org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)位于org.junit.internal.builders.AllDefaultPossibilities Builder.runnerForClass(AllDefaultPossibility Builder.java:26)网址:org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)网址:org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)网址:com.intellij.junit4.JUnit4DeaTestRunner.startRunnerWithArgs(JUnit4DieTestRunner.java:50)网址:com.intellij.rt.junit.IideaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)网址:com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)网址:com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)

您的依赖关系不一致。您正在混合Cucumber的多个版本,并包含传递依赖项。

因此,我强烈建议你花时间学习如何在肤浅的层面上使用Maven(或Gradle)。了解这些工具和相关概念可以让你的生活更轻松。

例如:

如果您想将Cucumber与JUnit4和基于注释的步骤定义一起使用,您可以在Mavenpom.xml文件中声明这个最小的依赖项集。

(注意:复制了一个旧版本的例子,对解释来说无关紧要)

<properties>
<cucumber.version>5.2.0</cucumber.version>
</properties>
<dependencies>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

通过告诉Maven你的依赖关系是什么,Maven可以计算你的可传递依赖关系,即:依赖关系的依赖关系。

这有很多优点。一个示例是使用mvn dependency:tree命令来列出所有依赖项及其可传递依赖项。

$ mvn dependency:tree
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------< cucumber:cucumber-java-skeleton >-------------------
[INFO] Building Cucumber-Java Skeleton 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cucumber-java-skeleton ---
[INFO] cucumber:cucumber-java-skeleton:jar:0.0.1
[INFO] +- io.cucumber:cucumber-java:jar:5.2.0:test
[INFO] |  +- io.cucumber:cucumber-core:jar:5.2.0:test
[INFO] |  |  +- io.cucumber:cucumber-gherkin:jar:5.2.0:test
[INFO] |  |  +- io.cucumber:cucumber-gherkin-vintage:jar:5.2.0:test
[INFO] |  |  +- io.cucumber:tag-expressions:jar:2.0.4:test
[INFO] |  |  +- io.cucumber:cucumber-expressions:jar:8.3.1:test
[INFO] |  |  +- io.cucumber:datatable:jar:3.3.0:test
[INFO] |  |  +- io.cucumber:cucumber-plugin:jar:5.2.0:test
[INFO] |  |  - io.cucumber:docstring:jar:5.2.0:test
[INFO] |  - org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- io.cucumber:cucumber-junit:jar:5.2.0:test
[INFO] - junit:junit:jar:4.13:test
[INFO]    - org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.781 s
[INFO] Finished at: 2020-02-10T23:00:14+01:00
[INFO] ------------------------------------------------------------------------

最新更新