【问题标题】:Conflicting versions between Gradle groovy and RestAssured groovyGradle groovy 和 RestAssured groovy 之间的版本冲突
【发布时间】:2022-01-03 22:59:20
【问题描述】:

我正在尝试运行使用 RestAssured useRelaxedHTTPSValidation() 方法的自动化测试,但执行失败并出现以下错误消息。

我正在使用 gradle 进行构建,这是我正在尝试恢复的旧项目。

Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-xml is loaded in version 2.5.8 and you are trying to load version 3.0.8
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:524)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:87)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:81)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModulesFrom(ExtensionModuleScanner.java:63)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:54)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:125)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:86)
    at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36)
    ... 15 more

附加信息:这是我的 gradle.build 文件,可能存在一些我没有意识到的依赖问题

version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'io.qameta.allure'

sourceCompatibility = 1.8

//buildScan { termsOfServiceUrl = "https://gradle.com/terms-of-service"; termsOfServiceAgree = "yes" }
repositories {
    jcenter()
    mavenCentral()
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.qameta.allure:allure-gradle:2.8.1"
    }
}

dependencies {
    compile group: 'org.testng', name: 'testng', version: '7.4.0'
    compile group: 'com.codeborne', name: 'selenide', version: '5.6.1'
    compile group: 'io.appium', name: 'java-client', version: '7.3.0'
    compile group: 'com.github.appium', name: 'java-client', version: '7.3.0' // should have the same version as io.appium java-client

    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.19'

    compile group: 'org.json', name: 'json', version: '20190722'
    compile group: 'io.rest-assured', name: 'rest-assured', version: '4.2.0'
    compile group: 'io.rest-assured', name: 'json-schema-validator', version: '4.2.0'
    compile group: 'io.rest-assured', name: 'json-path', version: '4.2.0'
    compile group: 'io.rest-assured', name: 'xml-path', version: '4.2.0'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.10.2'
    compile group: 'org.awaitility', name: 'awaitility', version: '3.0.0'

    compile group: 'log4j', name: 'log4j', version: '1.2.17'
    compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.26'

    compile group: 'io.qameta.allure', name: 'allure-selenide', version: '2.15.0'
    compile group: 'io.qameta.allure', name: 'allure-rest-assured', version: '2.15.0'
    compile group: 'io.qameta.allure', name: 'allure-testng', version: '2.15.0'
}

allure {
    version = '2.15.0'
    autoconfigure = true
    aspectjweaver = true
    allureJavaVersion = '2.15.0'
}

在下面的同一个文件中,我有一些自动化测试任务

【问题讨论】:

  • 哪个版本的 Gradle,你有一个简单的复制器项目来显示问题?
  • 我在我的 PC 上使用 gradle 7.2,但我在项目中的 gradle.properties 文件有以下行:distributionUrl=https\://services.gradle.org/distributions/gradle-5.1 .1-所有.zip。我一直在使用 build.gradle 文件,以前它可以完美运行。
  • 你在使用gradlew
  • 运行这个命令来更新 gradle wrapper: ``` gradle wrapper --gradle-version 7.3 --distribution-type all ``` 你的插件可能会针对较新的 Gradle 版本进行更新,因此您需要确保使用更新的 Gradle 发行版。您的构建使用了许多已弃用的东西,但它应该仍然可以工作。
  • 如果你声明了 allure 插件的版本(它可能在settings.gradle 中声明,如果是,我们可以确定它是为哪个版本的 Gradle 构建的),它可能工作得很好当您使用 ./gradlew ... 运行构建时...但几乎可以肯定,正确的做法是确保您使用的是该插件 (docs.qameta.io/allure-report/reporting/gradle) 和 Gradle 的最新版本。

标签: java gradle groovy rest-assured


【解决方案1】:

我遇到了依赖项问题。当执行 RestAssured 方法时,与其关联的 groovy 版本比已经执行的版本旧。我使用 CLI 导航到 gradle 文件所在的目录,执行“gradle -dependencies”,并根据 gradle 告诉我的内容更新依赖项。在此之后它开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多