【问题标题】:How do I run a single class after compiling the whole project with maven in command line? [duplicate]在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]
【发布时间】:2018-03-21 01:29:18
【问题描述】:

我可以在 Eclipse 中运行它,但是用命令行运行它时遇到问题。

我要运行的主要 java 类是 Example.java(在 src/main/java/examples 内)
请注意,虽然主 Example.java 中有一个简单的 junit 测试,但我不希望有任何与 src/test/java 中的 java 文件相关联的测试)

首先我cdpom.xml所在的目录

cd pathToTheProject/项目名称

我执行以下操作:

mvn clean
mvn 编译
mvn 包

现在只运行名为 Example.class 的主类,我编写以下内容(我想 pathToMavenLib/.m2/repository/* 包含所需的所有 jar 文件) :

java -cp "pathToMavenLib/.m2/repository/*" examples.Example

但这给了我错误:错误:无法找到或加载主类示例。示例

编辑:
我使用 mvn exec:java -Dexec.mainClass="org.junit.runner.JUnitCore" -Dexec.arguments="examples.Example"

解决了我的问题

【问题讨论】:

    标签: java eclipse maven classpath junit4


    【解决方案1】:

    您可以将可部署的工件创建为 war 文件(通过使用 <packaging>war</packaging> 将打包更改为 war),该文件将包含其 lib 目录下的所有依赖 jar 文件。
    然后你可以运行:mvn clean install

    然后您可以通过提供类路径参数来提取它并直接运行您的类文件。

    其他选项是使用 maven 运行插件 - mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...

    参考:Maven Run Project

    【讨论】:

    • 感谢您的回复。我的主类没有 main 方法,因为它与 junit 一起运行。你知道我在使用“mvn exec:java”命令时如何引用 junit 中的主要方法,所以我说类似 mvn exec:java org.junit.runner.JUnitCore -Dexec.mainClass="examples.Example" 但它给我错误
    • mvn -Dtest=TestCircle 测试
    • 谢谢,现在基于我在问题中提供的主要 java 类,我尝试运行 mvn -Dtest=examples.Example testUnsatisfiableClasses 但不起作用。我写的命令是真的吗?
    • 运行时遇到什么错误?检查您的 Maven 版本和测试插件。参考:maven.apache.org/surefire/maven-surefire-plugin/examples/…mkyong.com/maven/how-to-run-unit-test-with-maven
    • @april 如果你没有 main 方法,你是在自找麻烦。
    猜你喜欢
    • 2021-10-26
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多