目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数“mainClass”丢失或无效
Posted
技术标签:
【中文标题】目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数“mainClass”丢失或无效【英文标题】:The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java are missing or invalid 【发布时间】:2019-08-16 06:09:46 【问题描述】:我想在 pom.xml 中设置主类来运行 exec:java 我检查了很多资源但仍然有同样的错误。
我试着把它放在执行标签下。
<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>
<configuration>
<mainClass>com.mertilovski.app.Game</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的主类在app目录下。
井字游戏/井字游戏-Game/src/main/java/com/mertilovski/app
pom.xml 在井字游戏目录中。 那是我跑的地方
mvn exec:java -Dexec.mainClass="com.mertilovski.app.Game"
我尝试制作一个包 com.mertilovski.app;声明在上面。
mvn exec:java -Dexec.mainClass="src.main.java.com.mertilovski.app.com.mertilovski.app.Game "
结果是:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------
------------
[INFO] Building TicTacToe-Game 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------
------------
[INFO]
[INFO] >>> exec-maven-plugin:1.2.1:java (default-cli) > validate @
TicTacToe-Game >>>
[INFO]
[INFO] <<< exec-maven-plugin:1.2.1:java (default-cli) < validate @
TicTacToe-Game <<<
[INFO]
[INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ TicTacToe-
Game ---
[WARNING]
java.lang.ClassNotFoundException: com.mertilovski.app.Game
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
at java.lang.Thread.run(Thread.java:748)
[INFO] ------------------------------------------------------------
------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------
------------
[INFO] Total time: 0.639 s
[INFO] Finished at: 2019-03-26T01:30:18+03:00
[INFO] Final Memory: 8M/106M
[INFO] ------------------------------------------------------------
------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-
plugin:1.2.1:java (default-cli) on project TicTacToe-Game: An
exception occured while executing the Java class.
com.mertilovski.app.Game -> [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/MojoExecutionException
【问题讨论】:
请提供整个例外情况。此外,如果您使用的是 Windows - 请参阅 ***.com/questions/9846046/… 你先编译代码了吗? 是的,我做到了。我在linux中。我为整个例外编辑了它。谢谢。 "java.lang.ClassNotFoundException: com.mertilovski.app.Game"。您从中调用 Maven 的工作副本/目录在类路径中没有此类。在您运行 Maven 的目录中,执行 >> find 。 -type f -name "Game.class" ./src/main/java/com/mertilovski/app/Game.class 和 ./target/classes/Game.class 【参考方案1】:您的 XML 结构似乎不正确,因为 configuration
节点应该在 executions
(docs) 之外:
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.mertilovski.app.Game</mainClass>
</configuration>
【讨论】:
【参考方案2】:首先,我在我的 Game.java 文件顶部声明了一个包 com.mertilovski.app。 比我跑的
mvn exec:java -Dexec.mainClass="com.mertilovski.app.Game"
pom.xml 长这样(其余部分相同)
<configuration>
<mainClass>com.mertilovski.app.Game</mainClass>
</configuration>
当我运行 find 。 -type f -name "Game.class" 我得到:
./src/main/java/com/mertilovski/app/com/mertilovski/app/Game.class
./target/classes/com/mertilovski/app/Game.class
【讨论】:
以上是关于目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数“mainClass”丢失或无效的主要内容,如果未能解决你的问题,请参考以下文章
无法在项目 mavenproject2 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (默认):
目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数“mainClass”丢失或无效
未能执行目标 org.codehaus.mojo:exec-maven-plugin:1.2:java (default-cli)
Maven 和 Java:目标 org.codehaus.mojo:exec-maven-plugin:1.2.1:java 的参数“mainClass”丢失或无效
Maven错误:无法执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
在 Maven 中从测试范围运行 main:“目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数 'mainClass' 丢失或无效”