在命令行中使用 maven 编译整个项目后,如何 运行 单个 class?

How do I run a single class after compiling the whole project with maven in command line?

我能够 运行 在 Eclipse 中执行此操作,但在使用命令行 运行 时遇到问题。

我主要的javaclass我想运行是Example.java(里面src/main/java/examples)
请注意,虽然在主 Example.java 中有一个简单的 junit 测试,但我不想在 src/test/java )
[=12 中有任何与 java 文件关联的测试=]

首先我cdpom.xml所在的目录

cd pathToTheProject/projectname

我执行以下操作:

mvn clean
mvn 编译
mvn 包

现在只有 运行 主要 class 调用 Example.class 我写了以下内容(我想 pathToMavenLib/ .m2/repository/* 包含所有需要的 jar 文件):

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

但这给了我错误:错误:无法找到或加载主程序 class examples.Example

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

解决了我的问题

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

然后您可以通过提供 class-path 参数直接提取它和 运行 您的 class 文件。

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

参考:Maven Run Project