2016-08-23 72 views
0

我设置了新的Cucumber-Maven项目。mvn clean install throws编译失败,但与Junit运行正常运行

当我运行我的Runner.java文件选项作为Junit运行,同样工作正常。 但是当我尝试使用命令“MVN全新安装”通过命令提示符下运行一样,那么它会抛出错误: -

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> 

当我运行我的Runner.java类通过Runas-> junit它工作正常,但与mvn干净安装它不是。

请提出建议!

+0

什么是您的软件包结构? src/main/java下的源代码是什么? –

+0

src/main/java-包含代码和stepdefinitions。 src/test/java-包含我的runner类和src/main/resources-contains功能文件 –

+0

你的包不在classpath中......不知道为什么除非我看到代码 –

回答

0

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

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

要解决这个问题,你必须添加一个maven依赖到你的pom文件,该文件包含maven工件(通常是一个jar文件),其中包含缺少的包。

一旦找到包含缺失包的jar文件(尝试在junit的runner类路径中查找),可以将jar添加到本地maven存储库中以创建工件,然后将其包含在pom文件中。 尝试搜索'如何将jar添加到本地maven repo'以获得如何完成的语法。

+0

Paul: - 谢谢!你的解决方案:) –

+1

嗨Suresh,我很高兴解决方案的作品。请您将我的答案标记为“已接受”?谢谢。 –

0

解决方案:@Before构建您的组件(使用mvn干净安装)。重新构建整个项目并重新构建组件

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

对,但最近下载的额外jar可能会受到第三方(在其组件内)所做更改的影响。在整个项目中进行完整的mvn clean install可以为我节省很多时间

相关问题