mvn clean install throws编译失败,但同样可以正常使用Run as Junit

时间:2016-08-23 08:43:52

标签: java maven cucumber-jvm

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

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

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-&gt; junit运行我的runner.java类时,它工作正常但是使用mvn clean安装它不是。

建议!!

3 个答案:

答案 0 :(得分:1)

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

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

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

一旦找到包含缺失包的jar(尝试查看junit的运行器的类路径),就可以将jar添加到本地maven存储库以创建工件,然后将其包含在pom文件中。 尝试搜索&#39;如何将jar添加到本地maven repo&#39;有关如何完成此操作的语法。

答案 1 :(得分:0)

解决方案:@Before构建组件(使用mvn clean install)。构建整个项目一次并再次构建组件

为什么: 我多次得到这个错误。大多数时候我会尝试单独构建我的组件(因为我没有在其他地方进行更改)。

是的,但最近下载的额外jar可能会受到第三方(在其组件内)所做的更改的影响。在整个项目上进行完整的mvn clean安装已经多次保存了

答案 2 :(得分:0)

在项目上右键-> maven -> 更新项目 它将使用 maven 重新编译,并在 maven 目标执行后解决编译问题