摘要:如何在 Eclipse 之外运行 Eclipse Java Maven 项目
详细信息:
我是 Maven 新手,我在 Eclipse 中创建了一个非常简单的 Maven 项目。
我的项目的Package Explorer View 如下:
package Pkg01;
public class Calculator
{
public double add(double number1, double number2)
{
return number1 + number2;
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
System.out.println(calculator.add(100, 200));
}
}
和
package Pkg01;
import junit.framework.TestCase;
public class TestCalculator extends TestCase
{
public void testAdd()
{
Calculator calculator = new Calculator();
double result = calculator.add(10, 50);
assertEquals(60, result, 0);
}
}
在 Eclipse 中,我能够运行 Java 应用程序、Junit 测试和 Maven 测试,没有任何问题。
我的问题是如何从 DOS shell 调用 mvn
命令,以便我可以:
- 运行 Java 应用程序
- 运行 Junit 测试
- 运行 Maven 测试
顺便说一句,从项目的父目录运行 mvn exec:java
不会为我执行 Java 应用程序。
我的 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>org.newbie</groupId>
<artifactId>Stackoverflow</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Stackoverflow</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
mvn exec:java
给出以下错误:
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< org.newbie:Stackoverflow >----------------------
[INFO] Building Stackoverflow 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ Stackoverflow ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.957 s
[INFO] Finished at: 2019-11-05T22:47:00-06:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project Stackoverflow: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java are missing or invalid -> [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/PluginParameterException
<小时/>
以下是我觉得我的问题是 not a duplicate 的原因.
我使用 maven-archetype-quickstart 创建了一个非常简单的项目,并且我的环境是正确的,因为一切{即(1) 运行 Java 应用程序,(2) 运行 Junit 测试和 (3) 运行 Maven 测试}在 Eclipse IDE 环境中适用于我。另一位发帖人在执行时遇到困难,我没有。
另一位发帖者收到的评论主要是为了修复他的环境以使其运行。我没有这个问题,因为正如已经提到的,在 Eclipse IDE 环境中一切都适合我。
我所问的是我需要做什么才能从命令 shell 中执行以下操作:
- 运行 Java 应用程序
- 运行 Junit 测试
- 运行 Maven 测试
最佳答案
错误消息指出目标 org.codehaus.mojo:exec-maven-plugin 的参数“mainClass”。如果您查看 exec:java文档所需参数是 mainClass
我没有看到您的 pom.xml 中配置了 exec-maven-plugin,因此您可以使用以下命令执行 Java 程序
mvn exec:java -Dexec.mainClass="com.example.Main"
在运行 mvn exec..
命令之前,请确保已使用 mvncompile
或 mvninstall
命令编译代码
C:\data\development\app_code\my-app>mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building my-app 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ my-app ---
300.0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.960 s
[INFO] Finished at: 2019-11-06T09:55:23+00:00
[INFO] Final Memory: 9M/116M
[INFO] ------------------------------------------------------------------------
C:\Sachin\data\development\app_code\test-maven\my-app>
对于 Junit 测试,您可以调用 mvn test
这将为您提供类似于 Eclipse IDE 的测试结果状态
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.mycompany.app.AppTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.198 s
[INFO] Finished at: 2019-11-06T09:55:58+00:00
[INFO] Final Memory: 19M/160M
[INFO] ------------------------------------------------------------------------
我确实看到 Karthikeyan Vaithilingam 的链接中提到了相同的细节
引用:
https://www.mojohaus.org/exec-maven-plugin/usage.html
<小时/>操作附录
您已提供以下解决方案:
1. 运行Java应用程序
3.运行Maven测试
我还可以从 IDE 调用:
2. 运行Junit测试
诚然,这与 3 非常相似。运行 Maven 测试
但输出看起来不同。
有没有办法从 IDE 环境之外做到这一点?
关于java - 从 Windows (DOS) shell 运行 Eclipse Java Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723288/