2015-11-05 74 views
0

当我尝试编译在霍顿我的代码工作沙箱:错误消息在编译风暴拓扑

mvn compile exec:java -Dstorm.topology=ProvaTopology.java -e 

我的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>Storm.practice</groupId> 
    <artifactId>Storm.Prova</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>Storm.Prova</name> 
    <url>http://maven.apache.org</url> 

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

    <dependencies> 
    <dependency> 
    <groupId>org.apache.storm</groupId> 
    <artifactId>storm-core</artifactId> 
    <version>0.9.1-incubating</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

所以,当我尝试汇编我有一些错误,它显示了这样的事情:

[INFO] Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Storm.Prova 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Storm.Prova --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/prova/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ Storm.Prova --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ Storm.Prova --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 5.227s 
[INFO] Finished at: Thu Nov 05 17:48:55 UTC 2015 
[INFO] Final Memory: 11M/105M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java (default-cli) on project Storm.Prova: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java are missing or invalid -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java (default-cli) on project Storm.Prova: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java are missing or invalid 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:220) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.PluginParameterException: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java are missing or invalid 
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:581) 
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:534) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:97) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    ... 19 more 
[ERROR] 
[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/PluginParameterException 

我使用Eclipse Mars Mars与M2E插件,和推荐的hortonworks沙箱版本。

如果有人知道它为什么会显示此错误,请告诉我。

在此先感谢!

回答

2

从错误消息,它似乎像你的maven插件找不到你的主类。如果您提供主要课程的完整软件包名称,该怎么办?类似于

-Dstorm.topology=com.xyz.wbx.ProvaTopology 

替换为试图编译项目时您的实际软件包名称。

编辑

你的错误消息指出的exec-Maven的插件无法找到主类。你的pom似乎没有被列为插件。根据this answer,在您的pom中包含以下内容。 将它包含在依赖关系标记之后。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>java</goal> 
       </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <mainClass>com.xyz.wbx.ProvaTopology</mainClass> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 

对于完整的包名,不包括src.main.java,刚开始用的域名。通常是com,org等。

+0

谢谢,我已经尝试完成包和从父项目目录(src.main,Java ..)完整的路线,并且不起作用,相同的消息。 (抱歉关于其他文本,控制+ c错误) – Amnor

+0

你是如何得到exec-maven-plugin的?你的pom.xml没有说你拥有它。 – morganw09dev

+0

我真的不知道你的意思,这个pom是一个来自网络的样本,并且使用我的projet进行了编辑,也许它缺少了那部分。对不起,我是一个使用maven的完整noob。我有这个从-X(调试)选项,也许有用:[DEBUG](f)arguments = [] [调试](f)classpathScope = runtime – Amnor