升级到最新的selenium版本后,定期生成失败

时间:2017-06-23 09:10:38

标签: maven selenium upgrade

最近我们升级到最新的selenium版本3.4.0。虽然在POM更新后一切正常,但经过一些成功的构建后,构建错误开始出现,而我们的代码或POM没有任何明显的变化。

以下是我的POM的样子:

<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>
<parent>
    <groupId>com.ssssss.fffff.xxxxxx</groupId>
    <artifactId>xxxxxx-xxxxxx-portal</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>machine-learning-selenium</artifactId>
<description>Automated Web Testing</description>
<packaging>jar</packaging>

<name>Automated Selenium Test</name>

<properties>
    <selenium.version>3.4.0</selenium.version>
</properties>

<dependencies>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>${selenium.version}</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>${selenium.version}</version>
    </dependency>


    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.3</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>

    <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>1.4.01</version>
    </dependency>

    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-api</artifactId>
        <version>2.0.0-m19</version>
    </dependency>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>2.0.0-m19</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.16.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.0.10.Final</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-client</artifactId>
        <version>9.4.5.v20170502</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.4.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4.0</version>
        </plugin>
    </plugins>
</build>

当我进行全新安装时,这是它在控制台中抛出的内容:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.411 s
[INFO] Finished at: 2017-06-23T14:28:46+05:30
[INFO] Final Memory: 38M/439M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project automated-selenium: Could not resolve dependencies for project com.xxxxx.yyyy.zzzzz:automated-selenium:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.seleniumhq.selenium:selenium-server:jar:3.4.0 -> org.seleniumhq.selenium:selenium-java:jar:3.4.0 -> org.seleniumhq.selenium:htmlunit-driver:jar:2.26 -> org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0): No versions available for org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0) within specified range -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project automated-selenium: Could not resolve dependencies for project com.xxxxx.yyyy.zzzzz:automated-selenium:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.seleniumhq.selenium:selenium-server:jar:3.4.0 -> org.seleniumhq.selenium:selenium-java:jar:3.4.0 -> org.seleniumhq.selenium:htmlunit-driver:jar:2.26 -> org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:221)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127)
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:245)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:199)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    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:483)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.xxxxx.yyyy.zzzzz:automated-selenium:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.seleniumhq.selenium:selenium-server:jar:3.4.0 -> org.seleniumhq.selenium:selenium-java:jar:3.4.0 -> org.seleniumhq.selenium:htmlunit-driver:jar:2.26 -> org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0)
    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:180)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195)
    ... 23 more
Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed to collect dependencies at org.seleniumhq.selenium:selenium-server:jar:3.4.0 -> org.seleniumhq.selenium:selenium-java:jar:3.4.0 -> org.seleniumhq.selenium:htmlunit-driver:jar:2.26 -> org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:291)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:316)
    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:172)
    ... 24 more
Caused by: org.eclipse.aether.resolution.VersionRangeResolutionException: No versions available for org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0) within specified range
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.filterVersions(DefaultDependencyCollector.java:648)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:394)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse(DefaultDependencyCollector.java:504)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse(DefaultDependencyCollector.java:504)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse(DefaultDependencyCollector.java:504)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
    at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254)
    ... 26 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

当我通过jenkins运行它时会发生同样的问题。 我尝试过以下操作:

  1. 删除.m2存储库并重建
  2. 在eclipse中重新导出后重新构建项目(虽然问题不在于eclipse)
  3. 构建时强制更新
  4. 对项目进行了maven更新
  5. 没有用!

2 个答案:

答案 0 :(得分:1)

我认为在你的pom artifactId selenium-api 它应该是 selenium-java 。 请参阅以下内容:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.4.0</version>
    </dependency>

答案 1 :(得分:0)

以下是您的问题的答案:

错误说明了一切:

Failed to collect dependencies at org.seleniumhq.selenium:selenium-server:jar:3.4.0 -> org.seleniumhq.selenium:selenium-java:jar:3.4.0 ->  org.seleniumhq.selenium:selenium-api:jar:[3.3.1,4.0.0)

当您在selenium-server中使用pom.xml依赖关系时,如下所示:

&#13;
&#13;
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.4.0</version>
    </dependency> 
&#13;
&#13;
&#13;

Selenium Documentation在这里明确提到

  

如果您的项目将在Web应用程序容器中运行,那么selenium-server工件依赖于 servlet-api-3.1.0 工件,您应该排除该工件。

添加servlet-api-3.1.0 artifact将解决您的问题。

如果这回答你的问题,请告诉我。