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

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

原文  http://blog.csdn.net/qbg19881206/article/details/19850857

主题 Maven

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
时间: 2024-10-13 23:27:00

使用Maven运行Java main的3种方式的相关文章

使用Maven运行Java ain的方法(转)

使用Maven运行Java Main的方法(既Java Application项目),可以有如下方式解决: 1.将Maven项目导入到eclipse中,然后直接项目右键[Run As]->[Java Application]. 2.直接指定jar包的Main入口(参考:http://www.cnblogs.com/EasonJim/p/6481704.html),通过Maven命令打包出jar文件,然后运行java -jar Application.jar. 3.通过Maven插件exec-ma

Java序列化的几种方式以及序列化的作用

Java序列化的几种方式以及序列化的作用 本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用    有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象.例如,有的时候我们想要 把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象写成转换成字节流.对于这种通用 的操作,我们为什么不使用统一的格式呢?没错,这里就出现了java

Maven打jar包的三种方式

Maven打jar包的三种方式 不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> <!-- 指定项目编译时的java版本和编码方式 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <

Java创建对象的4种方式?

 [Java创建对象的4种方式?] 1)通过new语句实例化一个对象 2)通过反射机制创建对象 3)通过clone()方法创建一个对象  (复制) 4)通过反序列化方式创建对象

Java文件下载的几种方式

   本文主要是讲述Java文件下载的几种方式,更多Java技术知识,请登陆疯狂软件教育官网. publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){ try{ //path是指欲下载的文件的路径. Filefile=newFile(path); //取得文件名. Stringfilename=file.getName(); //取得文件的后缀名. Stringext=filename.substrin

gradle运行java main

gradle自己没有类似maven archtype那样的根据原型初始化新的工程目录结构,这里写了一个task用来创建maven风格的目录结构 build.gradle文件: apply plugin: 'java' apply plugin: 'groovy' group = "com.ma" version = "1.0" ext{ // java文件编码方式设置为utf-8 compileJava.options.encoding = 'UTF-8' comp

5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目

 1  第一种方式是:在连网的情况下,通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2  第二中方式是: 通过插件配置的方式进行安装插件. A  将maven所需的插件放到maven的安装目录下,截图如下: B 在Eclipse的dropins目录下创建以下三个插件: 三个文件中的内容分别是: m2e.txt path=E:/Installed/apache-maven-3.1.0/

实现Java多线程的三种方式

1. JAVA多线程实现方式    JAVA多线程实现方式主要有三种: 继承Thread类 实现Runnable接口 使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的. 2. 继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但 Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread

java定时任务的三种方式

/**  * 普通thread  * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,  * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下 */  public class Task1 {      public static void main(String[] args) {          // run in a second          final long timeInterval = 1000;          Runn