【发布时间】:2010-11-08 12:36:01
【问题描述】:
是否有一个 Maven“阶段”或“目标”来简单地执行 Java 类的主要方法?我有一个项目,我想通过简单地执行“mvn run”之类的操作来手动测试。
【问题讨论】:
是否有一个 Maven“阶段”或“目标”来简单地执行 Java 类的主要方法?我有一个项目,我想通过简单地执行“mvn run”之类的操作来手动测试。
【问题讨论】:
在pom.xml 中添加以下属性。确保使用包含main 方法的全限定类名(即包名):
<properties>
<exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>
现在从终端触发以下命令:
mvn clean compile exec:java
注意您可以通过-Dexec.args="xxx" 标志传递更多参数。
【讨论】:
请参阅exec maven plugin。您可以使用以下方式运行 Java 类:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
如果插件配置在您的 pom.xml 中,则调用可以像 mvn exec:java 一样简单。 Mojohaus 上的插件站点有一个more detailed example。
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
【讨论】:
无需在 pom.xml 中添加新插件。只需运行此命令
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
查看maven exec plugin了解更多用法。
【讨论】:
-Dexec.args="...arg..."传递更多参数
clean package exec:java -P Class_Containing_Main_Method 命令也是一个选项,如果您在项目中只有一个 Main 方法 (PSVM),使用以下 Maven 设置。
别忘了在pom.xml 的<properties></properties> 部分提及该课程:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
STS 运行配置以及上面的 Maven 设置:
【讨论】:
-P 用于个人资料。分享这个,因为它也是运行 Maven 项目的一个选项。
【讨论】: