256

是否有一个 Maven“阶段”或“目标”来简单地执行 Java 类的主要方法?我有一个项目,我想通过简单地执行“mvn run”之类的操作来手动测试。

4

6 回答 6

385

请参阅exec maven 插件。您可以使用以下方式运行 Java 类:

mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...

调用可以像mvn exec:java插件配置在您的 pom.xml 中一样简单。Mojohaus 上的插件站点有一个更详细的示例

<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>
于 2009-07-06T21:39:10.367 回答
45

1. 编辑 POM.xml

在 中添加以下属性pom.xml。确保使用包含main方法的完全限定类名(即包名):

<properties>
        <exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>

2.运行命令

现在从终端触发以下命令:

mvn clean compile exec:java

注意您可以通过-Dexec.args="xxx"标志传递更多参数。

于 2018-05-06T10:30:22.917 回答
15

上面提到的答案是正确的,但我正在为像我这样的菜鸟简化它。转到您项目的 pom 文件。添加一个新属性exec.mainClass并将其值作为包含您的主要方法的类。对我来说,它DriverClassmainpkg. 根据您的项目更改它。 在此处输入图像描述

完成此操作后,导航到包含项目的文件夹pom.xml并在命令提示符下运行它mvn exec:java。这应该调用 main 方法。

于 2015-11-25T09:29:20.107 回答
11

无需在 pom.xml 中添加新插件。只需运行此命令

mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)' 

有关更多用法,请参阅maven exec 插件

于 2016-06-03T06:47:39.790 回答
6

试试Exec Maven插件

于 2009-07-06T21:47:29.133 回答
2

clean package exec:java -P Class_Containing_Main_Method如果项目中只有一个 Main 方法(PSVM),则命令也是一个选项,具有以下 Maven 设置。

不要忘记在以下<properties></properties>部分提及课程pom.xml

<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 设置:

在此处输入图像描述

于 2015-11-19T03:48:03.510 回答