java - 从 Windows (DOS) shell 运行 Eclipse Java Maven 项目

标签 java eclipse maven

摘要:如何在 Eclipse 之外运行 Eclipse Java Maven 项目

详细信息:

我是 Maven 新手,我在 Eclipse 中创建了一个非常简单的 Maven 项目。

我的项目的Package Explorer View 如下:

enter image description here
两个简单的Java文件的源代码如下:

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 命令,以便我可以:

  1. 运行 Java 应用程序
  2. 运行 Junit 测试
  3. 运行 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 中执行以下操作:

  1. 运行 Java 应用程序
  2. 运行 Junit 测试
  3. 运行 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.. 命令之前,请确保已使用 mvncompilemvninstall 命令编译代码

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 测试 但输出看起来不同。

enter image description here

有没有办法从 IDE 环境之外做到这一点?

关于java - 从 Windows (DOS) shell 运行 Eclipse Java Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723288/

相关文章:

java - 在 Android Studio 中的哪里添加类文件夹?

java - 无法单击单选按钮,其中单选按钮更改 Web ui 页面上的顺序 Selenium Web Driver Java

java - Eclipse 中的 Angular Js

Java 包、项目、NoSuchMethod 错误

java - 模拟对象单元测试遇到问题

maven nexus 下载中央远程索引错误

java - Maven verify 命令有什么作用?

java - Bash 脚本——使用expect 从标准输出读取

java - 无法用.so文件解析相应的JNI函数

Java 卡 检测到与智能卡的通信错误