使用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
  • asp之家 软件编程 m.aspxhome.com