是否存在一个Maven“阶段”或“目标”来简单地执行Java类的主方法?我有一个项目,我想通过简单地做一些像“mvn运行”手动测试。
当前回答
1. 编辑POM.xml
在pom.xml中添加以下属性。确保你使用了包含main方法的完全限定类名(即包名):
<properties>
<exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>
2. 运行命令
现在从终端,触发以下命令:
mvn clean compile exec:java
您可以通过-Dexec传递进一步的参数。args = " xxx "国旗。
其他回答
上面提到的答案是正确的,但我把它简化为像我这样的新手。转到项目的pom文件。添加一个新的属性exec。mainClass,并将其值作为包含main方法的类。对我来说,它是mainpkg中的DriverClass。根据您的项目更改它。
完成此操作后,导航到包含项目pom.xml的文件夹,并在命令提示符mvn exec:java上运行该文件夹。这应该调用main方法。
试试Exec Maven插件吧
1. 编辑POM.xml
在pom.xml中添加以下属性。确保你使用了包含main方法的完全限定类名(即包名):
<properties>
<exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>
2. 运行命令
现在从终端,触发以下命令:
mvn clean compile exec:java
您可以通过-Dexec传递进一步的参数。args = " xxx "国旗。
java -P Class_Containing_Main_Method命令也是一个选项,如果你在项目中只有一个Main方法(PSVM),使用下面的Maven Setup。
不要忘记在pom.xml的<properties></properties>部分提到这个类:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
STS运行配置与上述Maven安装:
不需要在pom.xml中添加新的插件。只需运行这个命令
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
有关更多用法,请参阅maven exec插件。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap