在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]
Posted
技术标签:
【中文标题】在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]【英文标题】:How do I run a single class after compiling the whole project with maven in command line? [duplicate] 【发布时间】:2018-03-21 01:29:18 【问题描述】:我可以在 Eclipse 中运行它,但是用命令行运行它时遇到问题。
我要运行的主要 java 类是 Example.java(在 src/main/java/examples 内) 请注意,虽然主 Example.java 中有一个简单的 junit 测试,但我不希望有任何与 src/test/java 中的 java 文件相关联的测试)
首先我cd到pom.xml所在的目录
cd pathToTheProject/项目名称
我执行以下操作:
mvn cleanmvn 编译 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"
解决了我的问题【问题讨论】:
【参考方案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 方法,你是在自找麻烦。以上是关于在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在一个maven项目中执行一个简单的测试类代码,没有在Run面板打印结果,而是在Build面板使用install命令编译整个模块