当试图将selenium项目转换为maven项目时...显示我的字节buddy.jar错误

时间:2017-11-23 11:48:15

标签: java maven selenium-webdriver

存档所需的库:' C:/Users/TOPS/.m2/repository/net/bytebuddy/byte-buddy/1.7.5/byte-buddy-1.7.5.jar'在项目' Maven1'无法读取或不是有效的ZIP文件

这是eclipse中问题窗口中显示的错误

我已经完成了转换seleniumn项目的步骤

  1. 创建一个简单的selenium webdriver项目

  2. 将其转换为maven项目

  3. 从库选项中删除所有selenium jar

  4. 在pom.xml中添加所有依赖项

  5. 从添加库选项

  6. 添加JRE和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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>Maven1</groupId>
      <artifactId>Maven1</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <build>
         <sourceDirectory>src</sourceDirectory>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
             <configuration>
               <source>1.8</source>
               <target>1.8</target>
           </configuration>
           </plugin>
        </plugins>
     </build>
    
     <dependencies>
              <dependency>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-server</artifactId>
                    <version>3.0.1</version>
              </dependency>
    
              <dependency>
                  <groupId>org.seleniumhq.selenium</groupId>
                  <artifactId>selenium-java</artifactId>
                  <version>3.7.1</version>
              </dependency>
    
             <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.12</version>
                </dependency>
              <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-booter</artifactId>
              <version>2.20.1</version>
          </dependency>
       </dependencies>
     </project>
    

1 个答案:

答案 0 :(得分:0)

关于 Byte Buddy

Byte Buddy是一个用于在运行时创建Java类的Java库。这个工件是Byte Buddy的构建,其余依赖于ASM。如果没有将Byte Buddy和ASM重新打包到您自己的命名空间中,您就不应该依赖此模块。

当您看到错误为Archive for required library: 'C:/Users/TOPS/.m2/repository/net/bytebuddy/byte-buddy/1.7.5/byte-buddy-1.7.5.jar' in project 'Maven1' cannot be read or is not a valid ZIP file时,我会建议您执行以下步骤:

  • 删除所有 dependencies 并执行 maven clean maven install
  • 仅添加 Selenium dependency
  • 根据您的具体要求,将 selenium-server selenium-java 添加为依赖项。
  • 仅使用来自Maven Artifact的最新 Selenium dependencies <version>3.7.1</version>
  • 仅使用兼容的 junit dependencies
  • 我可以看到您使用了 surefire-booter 依赖关系,如下所示(如果需要,请进行交叉检查):

      <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-booter</artifactId>
        <version>2.20.1</version>
      </dependency>
    
  • 最后,显然缺少 maven-surefire-plugin 。您需要添加以下 plugin

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
            <suiteXmlFiles>
                <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
            </suiteXmlFiles>
        </configuration>
    </plugin>