2009-07-06 124 views
166

是否有Maven「階段」或「目標」來簡單地執行Java類的主要方法?我有一個項目,我想通過簡單地執行諸如「mvn run」的方式進行手動測試。Maven Run項目

回答

270

請參閱exec maven plugin。您可以使用運行Java類:

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

調用可以是一個簡單mvn exec:java如果插件配置是在你的pom.xml。 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> 
+0

exec:java對我沒有任何幫助,但exec:exec做到了。 – 2013-03-12 11:28:41

+5

這就是答案的樣子!參考+簡單的例子+複雜的例子。這個簡單的例子爲我做了訣竅(沒有更多的配置需要) – codewing 2016-10-11 09:28:16

+1

是否有更新版本的這個插件(比1.2.1更新?) – 2017-09-22 22:44:49

0

clean package exec:java -P Class_Containing_Main_Method命令也是一種選擇,如果你只有一個項目中的Main方法(PSVM),具有以下Maven安裝。

不要忘記提及類的pom.xml<properties></properties>部分:上面的Maven設置沿

<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運行配置:

enter image description here

8

上述的答案是正確的但我正在爲像我這樣的noobs進行簡化。轉到您項目的pom文件。添加一個新的屬性exec.mainClass並給它的值作爲包含你的主要方法的類。對我來說,它是DriverClassmainpkg。根據您的項目進行更改。 enter image description here

已經做到了這一點導航到包含項目的pom.xml並在命令提示符下運行mvn exec:java這個文件夾。這應該稱爲主要方法。

4

無需在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更多的使用。