在命令行中使用 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 文件关联的测试=]
首先我cd到pom.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
我能够 运行 在 Eclipse 中执行此操作,但在使用命令行 运行 时遇到问题。
我主要的javaclass我想运行是Example.java(里面src/main/java/examples)
请注意,虽然在主 Example.java 中有一个简单的 junit 测试,但我不想在 src/test/java )
[=12 中有任何与 java 文件关联的测试=]
首先我cd到pom.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