Maven Run项目

时间:2009-07-06 21:24:48

标签: java maven

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

6 个答案:

答案 0 :(得分:316)

请参阅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>

答案 1 :(得分:13)

上面提到的答案是正确的,但我正在为像我这样的新手简化它。转到你项目的pom文件。添加新属性exec.mainClass并将其值作为包含main方法的类。对我来说,DriverClassmainpkgpom.xml。根据您的项目更改它。 enter image description here

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

答案 2 :(得分:6)

答案 3 :(得分:6)

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

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

有关更多用途,请参阅Reachability

答案 4 :(得分:6)

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"标记传递更多参数。

答案 5 :(得分:2)

如果项目中只有一个Main方法(PSVM),并且具有以下Maven设置,则

clean package exec:java -P Class_Containing_Main_Method命令也是一个选项。

不要忘记在<properties></properties>的{​​{1}}部分提及该课程:

pom.xml

STS运行配置以及Maven设置:

enter image description here