[英]maven-exec-plugin throws exception for no apparent reason
我在包含帶有a的類的Maven項目的根目錄中的Windows shell中鍵入以下內容
public static void main(String [] args)
我想要運行的方法。
mvn exec:java -Dexec.mainClass =“com.spp.config.main.SqlGeneratorHarness”-e
該類存在並在該包中編譯(即target / classes / com / spp / config / main / SqlGeneratorHarness.class)。
我知道了...
+ 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:exec -Dexec.executable =“java”[...]
和
mvn org.codehaus.mojo:exec-maven-plugin:1.2.1:java [...]
無濟於事。 是什么賦予了?
我在Windows 7 Enterprise 64位上運行Maven 2.2.1,Java JDK 1.6.0_27。
我的pom.xml中的exec-maven-plugin片段是......
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
</plugin>
在<properties>
設置版本的位置
所以...重新審視這個...如果您使用Windows PowerShell,您將獲得我最初報告的異常。 但是,如果您使用cmd.exe,那么您應該能夠使用我發布的命令運行該類(包含或不包含雙引號)。
有一些非常基本的錯誤。 嘗試丟失引號。 那里不需要它們。 事實上,嘗試從更簡單的東西開始,比如
mvn -e exec:java -Dexec.mainClass=foo
這應該給你錯誤“執行Java類時發生異常.foo”,根本原因應該是ClassNotFoundException:
Caused by: java.lang.ClassNotFoundException: foo
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
自己輸入。 不要從其他地方復制/粘貼命令。
只是一個快速清單:
~/.m2
文件夾並再次運行mvn exec:java ...
讓Maven再次從中心下載所有內容。 pom.xml
(以及父poms)中查找可疑的repository
和pluginRepository
標記。 settings.xml
查找可疑repository
, pluginRepository
和mirror
標記。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.