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.bubuko.com/infodetail-2005069.html