2017-02-15 91 views
1

我想更新jenkins selenium插件(最新版本:2.53.1)。 我可以在jenkins之外配置selenium集線器和節點,並且使用最新的瀏覽器版本(firefox 51.0.1,chrome 55.0.2883.87)成功運行我的自動化測試,但我只是想用jenkins作爲集線器。將jenkins selenium插件更新到3.0.1版

因此,這就是爲什麼我試圖將最新版本的selenium-server-standalone(3.0.1)集成到Jenkins中,但它不起作用。

收到此錯誤信息:

[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:1.117 is missing, no dependency information available 
[WARNING] Failed to build parent project for org.jenkins-ci.plugins:selenium:hpi:2.53.2-SNAPSHOT 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO]Building Jenkins Selenium Plugin 2.53.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-hpi-plugin:1.117:validate (default-validate) @ selenium --- 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:display-info (display-info) @ selenium --- 
[INFO] Maven Version: 3.3.9 
[INFO] JDK Version: 1.8.0_121 normalized as: 1.8.0-121 
[INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: 4.4.0-62-generic 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (display-info) @ selenium --- 
[INFO] Restricted to JDK 1.7 yet org.seleniumhq.selenium:selenium-server-standalone:jar:3.0.1:compile contains org/openqa/selenium/chrome/ChromeDriver.class targeted to JDK 1.8 
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.EnforceBytecodeVersion failed with message: 
Found Banned Dependency: org.seleniumhq.selenium:selenium-server-standalone:jar:3.0.1 
Use 'mvn dependency:tree' to locate the source of the banned dependencies. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] 
------------------------------------------------------------------------ 
[INFO] Total time: 11.325 s 
[INFO] Finished at: 2017-02-15T16:42:25+01:00 
[INFO] Final Memory: 62M/1133M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce (display-info) on project selenium: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[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/MojoExecutionException 

Maven項目的pom.xml中:

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>fake</groupId> 
    <artifactId>fake</artifactId> 
    <packaging>pom</packaging> 
    <version>${selenium.version}</version> 

    <name>fake</name> 

    <properties> 
     <selenium.short.version>3.0</selenium.short.version> 
     <selenium.version>${selenium.short.version}.1</selenium.version> 
     <htmlunit.driver.version>2.20</htmlunit.driver.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.7</version> 
       <executions> 
        <execution> 
         <phase>install</phase> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <configuration> 
          <target> 
           <get 
            src="http://selenium-release.storage.googleapis.com/${selenium.short.version}/selenium-server-standalone-${selenium.version}.jar" 
            dest="${project.build.directory}/selenium-server-standalone-${selenium.version}.jar" 
            verbose="on" usetimestamp="true" /> 
           <get 
            src="https://github.com/SeleniumHQ/htmlunit-driver/releases/download/${htmlunit.driver.version}/htmlunit-driver-standalone-${htmlunit.driver.version}.jar" 
            dest="${project.build.directory}/htmlunit-driver-standalone-${htmlunit.driver.version}.jar" 
            verbose="on" usetimestamp="true" /> 
          </target> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-install-plugin</artifactId> 
       <version>2.5.1</version> 
       <executions> 
        <execution> 
         <id>selenium-server-standalone</id> 
         <phase>install</phase> 
         <goals> 
          <goal>install-file</goal> 
         </goals> 
         <configuration> 
          <file>${project.build.directory}/selenium-server-standalone-${selenium.version}.jar</file> 
          <groupId>org.seleniumhq.selenium</groupId> 
          <artifactId>selenium-server-standalone</artifactId> 
          <version>${selenium.version}</version> 
          <packaging>jar</packaging> 
          <localRepositoryPath>local_m2</localRepositoryPath> 

         </configuration> 
        </execution> 
        <execution> 
         <id>htmlunit-driver-standalone</id> 
         <phase>install</phase> 
         <goals> 
          <goal>install-file</goal> 
         </goals> 
         <configuration> 
          <file>${project.build.directory}/htmlunit-driver-standalone-${htmlunit.driver.version}.jar</file> 
          <groupId>org.seleniumhq.selenium</groupId> 
          <artifactId>htmlunit-driver-standalone</artifactId> 
          <version>${htmlunit.driver.version}</version> 
          <packaging>jar</packaging> 

          <localRepositoryPath>local_m2</localRepositoryPath> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

代碼:https://github.com/jenkinsci/selenium-plugin

操作系統:Ubuntu的16.04.2; Eclipse霓虹Java IDE,openjdk版本「1.8.0_121」

我已經嘗試過openjdk 1.7,但它仍然無法正常工作。

我在這是一個新手,所以我很感激任何幫助。非常感謝。

回答

0

根本原因很簡單:Jenkins插件的父pom默認強制執行到JDK7。硒庫已經開始使用JDK8。這解釋了執行者插件引起的錯誤消息。

這裏是如何的實施者插件已經在parent pom

<java.level>7</java.level>

<enforceBytecodeVersion> 
    <maxJdkVersion>1.${java.level}</maxJdkVersion> 
    <ignoredScopes> 
    <ignoredScope>test</ignoredScope> 
    </ignoredScopes> 
    <excludes> 
    <!-- Makes no sense to check core itself: --> 
    <exclude>org.jenkins-ci.main:jenkins-core</exclude> 
    <exclude>org.jenkins-ci.main:cli</exclude> 
    <exclude>org.jenkins-ci.main:jenkins-test-harness</exclude> 
    <!-- findbugs dep managed to provided and optional so is not shipped and missing annotations ok --> 
    <exclude>com.google.code.findbugs:annotations</exclude> 
    </excludes> 
</enforceBytecodeVersion> 

被配置爲解決這個問題,你有兩個選擇[我從來沒有嘗試過這一點,但它的東西,你可以嘗試看看它是否有幫助](這兩個選項我建議根據您父母本身的建議本身)

  • 嘗試傳遞JVM參數-Djava.level=8當你建立的代碼。
  • 添加一個條目,如下面的POM文件(這將導致執法插件或許忽略只有硒庫)

    Maven的實施者 - 插件 顯示信息 組織.seleniumhq.selenium:selenium-java::jar:compile org.seleniumhq.selenium:selenium-server::jar:compile

希望幫助!

更新 我花了更多的時間看這個,並意識到轉移到硒3.0.1這個插件並不是非常簡單。我已經嘗試做了更改,並提出了相同的pull request。你可以看看公關,看看是否有幫助。 PS:我還有3次測試未能通過公關測試。我還沒有想出如何讓他們通過。但公關應該可以幫助你開始。你可以直接檢查我的分支並嘗試從那裏建設。

+0

感謝您的快速響應和幫助。我明白原因,我試過了你的選擇。不幸的是,這些選項都沒有工作。錯誤消息: - 第一個選項 ... [INFO] BUILD FAILURE ... [ERROR]無法執行目標org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce(display- info):目標org.apache.maven.plugins的執行顯示信息:maven-enforcer-plugin:1.3.1:強制執行失敗:給出未知的JDK版本。應該是像「1.7」 - > [Help 1] ...你有其他想法嗎?我感謝您的幫助。謝謝。 –

+0

@ Jaw.M.-我已經更新了我的答案。請看看並接受它,如果它有幫助。 –

+0

非常感謝您的幫助。是否需要將htmlunit-driver-standalone更改爲版本3.0.1?最新的官方版本是2.20。當我用3.0.1版本和你的pr更改進行嘗試時,我遇到了一些問題:... [錯誤]無法執行項目硒目標:無法解析項目org.jenkins-ci的依賴關係。插件:selenium:hpi:2.53.2-SNAPSHOT:未能找到org.seleniumhq.selenium:htmlunit-driver-standalone:jar:3.0.1 in file:///home/.../git/selenium-plugin/ dist-server-standalone/local_m2被緩存在本地存儲庫中 –

相關問題