2024-08-24 10:00:02

Maven Run项目

是否存在一个Maven“阶段”或“目标”来简单地执行Java类的主方法?我有一个项目,我想通过简单地做一些像“mvn运行”手动测试。


参见exec maven插件。你可以使用以下方法运行Java类:

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

如果插件配置在pom.xml中,那么调用可以像mvn exec:java一样简单。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>

试试Exec Maven插件吧


java -P Class_Containing_Main_Method命令也是一个选项,如果你在项目中只有一个Main方法(PSVM),使用下面的Maven Setup。

不要忘记在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安装:


上面提到的答案是正确的,但我把它简化为像我这样的新手。转到项目的pom文件。添加一个新的属性exec。mainClass,并将其值作为包含main方法的类。对我来说,它是mainpkg中的DriverClass。根据您的项目更改它。

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


不需要在pom.xml中添加新的插件。只需运行这个命令

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

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


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 "国旗。