使用Maven运行Java main的3种方式

翻译 2014年02月24日 23:12:09

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://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/

使用maven的tomcat:run进行web项目热部署

最近又重新看了一下maven的东西,其实主要是因为去了解Jenkins,后期也许会补充jenkins的博文。 怎么在eclipse里面创建maven web工程,这边就不介绍了,参见:http://b...
  • enson16855
  • enson16855
  • 2015年07月08日 14:24
  • 11814

maven 项目在eclipse中没有 run as -> maven clean , maven install 等选项

1.在项目上右击, 选择 configure ->Convert to maven project 此命令把该项目转换成 maven 项目 2.然后在项目右击, run as 选项里就有 maven...
  • u014218318
  • u014218318
  • 2017年11月28日 11:01
  • 686

使用Eclipse构建Maven项目 (step-by-step)

引 题            Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包。本文仅对Eclipse中如何安装、配置和使用Maven进行了介绍。完全ste...
  • qjyong
  • qjyong
  • 2013年06月14日 21:42
  • 406553

Exec Maven Plugin全面解析和使用示例

1.为什么使用exec? 现在的工程往往依赖 众多的jar包,不像war包工程,对于那些打包成jar包形式的本地java应用来说,通过java命令启动将会是一件极为繁琐的事情,原因很简单,太 多...
  • xiaozaq
  • xiaozaq
  • 2017年04月11日 14:56
  • 670

Exec Maven Plugin全面解析和使用示例

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7622286 ,转载请注明出处!1.为什么使用exec?现在的工程往往依赖众多的jar包...
  • bluishglc
  • bluishglc
  • 2012年06月01日 09:29
  • 29512

maven学习总结:几个常用的maven插件

我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利。比如它带来的依赖管理,方便我们打包和部署运行。这里几个常见的插件就是和这些工程中常用的步骤相关。   maven-...
  • hejun1218
  • hejun1218
  • 2016年12月16日 10:38
  • 1987

Maven运行Java main方法区别: exec:java 和exec:exec

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7622286 ,转载请注明出处! 1.为什么使用exec? 现在的工程往往依赖众...
  • chengly0129
  • chengly0129
  • 2015年10月27日 12:47
  • 3510

The parameters 'mainClass' for goal org.codeh aus.mojo:exec-maven-plugin:1.6.0:java are missing or

在使用maven插件exec-maven-plugin编译Echo服务器出现[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-pl...
  • jyxmust
  • jyxmust
  • 2017年05月01日 18:57
  • 3082

maven的构建和运行

构建: 原文地址:http://www.cnblogs.com/candle806/p/3439469.html   Eclipse+Maven创建webapp项目 1、开启eclipse...
  • yibing548
  • yibing548
  • 2016年04月15日 15:40
  • 3094

eclipse构建及运行maven web项目

1:环境 eclipse indigo, JDK1.6, maven 3.2.1, tomcat7.0.42 2:安装eclipse maven插件 m2eclipse 1:从网上下载m2eclips...
  • maosijunzi
  • maosijunzi
  • 2014年03月13日 11:46
  • 145905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Maven运行Java main的3种方式
举报原因:
原因补充:

(最多只允许输入30个字)