java - mvn clean install 抛出编译失败,但同样可以与 Run as Junit 正常工作

标签 java maven cucumber-jvm

我建立了新的 Cucumber-Maven 项目。

当我使用“Run as Junit”选项运行 Runner.java 文件时,同样工作正常。 但是当我尝试使用命令“mvn clean install”通过命令提示符运行相同的命令时,它会抛出错误:-

C:\Users\HT1\workspace\com.pvrcucumber>mvn clean install
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for PVR_CUCUMBER:com.pvrcucumber:jar:0.0.1-SNAPSHOT
[WARNING] 'dependencies.dependency.systemPath' for com.microsoft.sqlserver:sqljdbc4:jar should not point at files within the project directory, ${project.basedir}/src/main/resources/config/sqljdbc4.jar will be unresolvable by dependent projects @ line 69, column 16
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 108, column 17
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.pvrcucumber 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ com.pvrcucumber ---
[INFO] Deleting C:\Users\HT1\workspace\com.pvrcucumber\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ com.pvrcucumber ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 16 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ com.pvrcucumber ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 24 source files to C:\Users\HT1\workspace\com.pvrcucumber\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[5,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[10,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[11,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[19,76] cannot find symbol
  symbol:   class FindFailed
  location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/DealsExclusives.java:[7,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/DealsExclusives.java:[36,91] cannot find symbol
  symbol:   class FindFailed
  location: class stepdefinitions.DealsExclusives
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[14,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[15,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[16,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[66,76] cannot find symbol
  symbol:   class FindFailed
  location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[21,17] cannot find symbol
  symbol:   class Screen
  location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[21,35] cannot find symbol
  symbol:   class Screen
  location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[22,17] cannot find symbol
  symbol:   class Pattern
  location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[22,34] cannot find symbol
  symbol:   class Pattern
  location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[94,27] cannot find symbol
  symbol:   class Screen
  location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[94,45] cannot find symbol
  symbol:   class Screen
  location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[95,27] cannot find symbol
  symbol:   class Pattern
  location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[95,44] cannot find symbol
  symbol:   class Pattern
  location: class pageObject.DealsExclusivesPage
[INFO] 18 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.447 s
[INFO] Finished at: 2016-08-23T13:59:43+05:30
[INFO] Final Memory: 19M/225M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project com.pvrcucumber: Compilation failure: Compilation failure:
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[5,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[10,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[11,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[19,76] cannot find symbol
[ERROR] symbol:   class FindFailed
[ERROR] location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/DealsExclusives.java:[7,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/DealsExclusives.java:[36,91] cannot find symbol
[ERROR] symbol:   class FindFailed
[ERROR] location: class stepdefinitions.DealsExclusives
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[14,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[15,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[16,25] package org.sikuli.script does not exist
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[66,76] cannot find symbol
[ERROR] symbol:   class FindFailed
[ERROR] location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[21,17] cannot find symbol
[ERROR] symbol:   class Screen
[ERROR] location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[21,35] cannot find symbol
[ERROR] symbol:   class Screen
[ERROR] location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[22,17] cannot find symbol
[ERROR] symbol:   class Pattern
[ERROR] location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/stepdefinitions/Cinemas.java:[22,34] cannot find symbol
[ERROR] symbol:   class Pattern
[ERROR] location: class stepdefinitions.Cinemas
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[94,27] cannot find symbol
[ERROR] symbol:   class Screen
[ERROR] location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[94,45] cannot find symbol
[ERROR] symbol:   class Screen
[ERROR] location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[95,27] cannot find symbol
[ERROR] symbol:   class Pattern
[ERROR] location: class pageObject.DealsExclusivesPage
[ERROR] /C:/Users/HT1/workspace/com.pvrcucumber/src/main/java/pageObject/DealsExclusivesPage.java:[95,44] cannot find symbol
[ERROR] symbol:   class Pattern
[ERROR] location: class pageObject.DealsExclusivesPage
[ERROR] -> [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/MojoFailureException

我的 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>PVR_CUCUMBER</groupId>
    <artifactId>com.pvrcucumber</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>com.pvrcucumber</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-testng</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.53.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

    <dependency>
    <groupId>org.sikuli</groupId>
    <artifactId>sikuli-api</artifactId>
    <version>1.2.0</version>
</dependency>


<dependency>
   <groupId>com.microsoft.sqlserver</groupId>
   <artifactId>sqljdbc4</artifactId>
   <version>4.0</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/src/main/resources/config/sqljdbc4.jar</systemPath>
  </dependency>


<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.14</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.14</version>
</dependency>



    </dependencies>


     <build>
  <plugins>

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-junit47</artifactId>
        <version>2.19.1</version>
      </dependency>
    </dependencies>
  </plugin>

        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
          </archive>
        </configuration>
      </plugin>

</plugins>
  </build>
</project>

当我通过 Runas->junit 运行我的 runner.java 类时,它工作正常,但使用 mvn clean install 则不然。

请推荐!!

最佳答案

当您运行 mvn clean install 时,编译项目所需的所有内容都必须在 pom 文件的依赖项部分中定义。 当您运行 junit 时,编译项目所需的所有内容都必须在类路径中定义。

在这种情况下,可以在 junit 的类路径中找到包 org.sikuli.script,但在 Maven 依赖项中找不到。

要解决此问题,您必须向 pom 文件添加 Maven 依赖项,其中包含包含缺少的包的 Maven Artifact (通常是 jar 文件)。

一旦找到包含缺少的包的 jar(尝试在运行程序的类路径中查找 junit),您可以将该 jar 添加到本地 Maven 存储库以创建 Artifact ,然后将其包含在您的 pom 文件中。 尝试搜索“如何将 jar 添加到本地 Maven 存储库”以获取有关如何完成此操作的语法。

关于java - mvn clean install 抛出编译失败,但同样可以与 Run as Junit 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096401/

相关文章:

java - 将 Spring 的 @Scheduled 注释与特定的执行程序一起使用

maven - 两个版本 :prepare and release:perform 上的配置文件激活

maven - 当文件存在时使用通配符激活配置文件

maven - 目标“包”不会自动调用Maven阴影插件

java - 两个不同的功能文件中的多个场景大纲和示例。如何将 Java 步骤从一个功能文件重用到另一个功能文件?

java - 当 url 不匹配时,匹配 driver.getcurrenturl () 和预期 url 报告的断言将通过

java - 如何指定 Jackson 反序列化的默认值

java - 神秘的 FileNotFoundException

java - new 运算符在构造函数或类主体中的位置

javascript - Cucumber生成空白html报告