使用maven运行Java Main的三种方法解析
作者:JavaDynamic 时间:2021-09-24 10:09:28
maven使用exec插件运行java main方法,以下是3种不同的操作方式。
一、从命令行运行
1、运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译。
mvn compile
2、编译完成后,执行exec运行main方法。
不需要传递参数:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main"
需要传递参数:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.args="arg0 arg1 arg2"
指定对classpath的运行时依赖:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime
二、在pom.xml中指定某个阶段执行
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.vineetmanohar.module.CodeGenerator</mainClass>
<arguments>
<argument>arg0</argument>
<argument>arg1</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
将CodeGenerator.main()方法的执行绑定到maven的 test 阶段,通过下面的命令可以执行main方法:
mvn test
三、在pom.xml中指定某个配置来执行
<profiles>
<profile>
<id>code-generator</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.vineetmanohar.module.CodeGenerator</mainClass>
<arguments>
<argument>arg0</argument>
<argument>arg1</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
将2中的配置用<profile>标签包裹后就能通过指定该配置文件来执行main方法,如下:
mvn test -Pcode-generator
注:通过以下命令可以获取mvn exec的其他配置参数说明。
mvn exec:help -Ddetail=true -Dgoal=java
来源:http://blog.csdn.net/qbg19881206/article/details/19850857
标签:java,main方法,main
0
投稿
猜你喜欢
Springboot使用redis实现接口Api限流的示例代码
2023-11-29 02:11:05
Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
2023-11-08 14:48:13
聊聊Java的switch为什么不支持long
2023-08-24 17:35:14
vscode+platformIO开发stm32f4的实现
2023-11-02 16:43:37
使用Springboot根据配置文件动态注入接口实现类
2022-11-18 06:56:45
Java中比较运算符compareTo()、equals()与==的区别及应用总结
2023-11-28 20:08:28
Java面试题冲刺第二十二天-- Nginx
2023-11-16 13:43:48
Android 实现可任意拖动的悬浮窗功能(类似悬浮球)
2023-08-07 10:19:05
Java面向对象基础知识之委托和lambda
2022-07-28 16:51:11
java操作mongodb之多表联查的实现($lookup)
2023-08-08 10:24:07
Java经典面试题汇总--多线程
2023-07-13 01:17:48
C#中 MessageBox的使用技巧
2023-06-25 16:15:48
List调用toString()方法后,去除两头的中括号实例
2023-09-28 11:18:56
springboot+springmvc+mybatis项目整合
2023-07-16 03:13:57
Spring Boot自动注入的原理分析
2023-03-29 04:19:44
IntelliJ IDEA 2020.2正式发布,两点多多总能助你提效
2023-08-30 18:15:18
在idea中将创建的java web项目部署到Tomcat中的过程图文详解
2022-10-24 23:58:25
JFreeChart插件实现的折线图效果实例
2023-09-21 02:20:03
java创建多级目录文件的实例讲解
2023-11-27 09:29:02
SSH框架网上商城项目第2战之基本增删查改、Service和Action的抽取
2023-06-21 19:16:23