首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven-exec-plugin无缘无故抛出异常。

maven-exec-plugin无缘无故抛出异常。
EN

Stack Overflow用户
提问于 2011-09-27 22:10:00
回答 2查看 9.2K关注 0票数 6

我在Maven项目根目录中的Windows shell中键入以下内容,该项目包含具有

公共静态空洞主(String[] args)

我想要运行的方法。

java:-Dexec.mainClass="com.spp.config.main.SqlGeneratorHarness“-e

类存在并在该包中编译(即,target/classes/com/spp/config/main/SqlGeneratorHarness.class). )。

我明白了。

代码语言:javascript
复制
+ Error stacktraces are turned on.  
[INFO] Scanning for projects...  
[INFO] Searching repository for plugin with prefix: 'exec'.  
[INFO] ------------------------------------------------------------------------  
[ERROR] BUILD FAILURE  
[INFO] ------------------------------------------------------------------------  
[INFO] Invalid task '.mainClass=com.spp.config.main.SqlGeneratorHarness': you must specify a valid 
       lifecycle phase, or a goal in the format plugin:goal or pluginGroupId:pluginArtifactId:pluginVersion:goal
[INFO] ------------------------------------------------------------------------
[INFO] Trace org.apache.maven.BuildFailureException: Invalid task' .mainClass=com.spp.config.main.SqlGeneratorHarness': you must specify 
       a valid lifecycle phase, or a goal in the format plugin:goal or pluginGroupId:pluginArtifactId:pluginVersion:goal
       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1830)
       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:462)
       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:175)
       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
       at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
       at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Tue Sep 27 14:33:52 PDT 2011
[INFO] Final Memory: 3M/122M
[INFO] ------------------------------------------------------------------------

我试过变体,比如

mvn :exec -Dexec.executable="java“

org.codehaus.mojo:exec-maven-plugin:1.2.1:java .

都没有用。怎么回事?

我在Windows7Enterprise64位上运行Maven 2.2.1,Java 1.6.0_27。

我的pom.xml上的一个代码片段是.

代码语言:javascript
复制
<plugin> 
   <groupId>org.codehaus.mojo</groupId> 
   <artifactId>exec-maven-plugin</artifactId> 
   <version>${exec-maven-plugin.version}</version> 
</plugin> 

<properties>中设置版本

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-29 20:49:45

所以..。重新审视这个..。如果您使用PowerShell,您将得到我最初报告的异常。但是,如果您使用的是cmd.exe,那么您应该能够按照我发布的命令运行这个类(不管有没有双引号包装)。

票数 19
EN

Stack Overflow用户

发布于 2011-09-28 01:41:38

有一些非常基本的错误。试着去掉引号。那里不需要他们。实际上,试着从一些简单的东西开始,比如

代码语言:javascript
复制
mvn -e exec:java -Dexec.mainClass=foo 

这会给您错误“执行Javaclass.foo时发生的异常”,根本原因应该是ClassNotFoundException:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: foo
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)

你自己打出来。不要从其他地方复制/粘贴命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7576265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档