2012-07-19 49 views
4

如果我叫如何調用的maven默認的生命週期

mvn clean install 

行家都知道,清潔是一個生命週期和安裝是默認的生命週期

如果我叫

mvn deploy 

行家的相將按順序執行默認生命週期的所有階段。

有沒有辦法通過給予生命週期名稱(而不是執行生命週期的最後一個定義)來調用默認生命週期?

編輯:所以現在的問題是:是否有一個命令

mvn lifecyclename 

是啓動默認的生命週期的執行?

回答

3

似乎是一場誤會召喚。進一步閱讀可以澄清,

mvn clean 

不會調用整個清潔生命週期。事實上,清潔生命週期中有一個清潔階段。命令執行此階段而不是生命週期。

1

據我所知,你不能執行一個孤立的生命週期階段。

但是你可以執行一個獨立的插件目標。

mvn deploy:deploy

這將不會觸發任何插件運行依賴於deploy階段。但是你總是可以在命令行中添加更多的插件執行。所以我最好用跳過所有插件執行的配置文件。

如果你想執行一個myplugin:mygoal這是綁deploy相,然後

mvn myplugin:mygoal deploy:deploy 

但執行的配置必須在CLI中。

但是你最好不要跳過你不想要的插件執行。在命令行中只跳過testintegration-test。但是,您可以通過配置文件將缺省循環的配置設置爲跳過。

<profiles> 
    <profile> 
    <id>skip</id> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
      <skip>true</skip> 
      </configuration> 
      </plugin> 
    ... 

然後用

mvn deploy -Pskip 
+0

不知道你是如何參考我的問題:-)我正在尋找一個命令,如「mvn lifecyclename」,啓動默認生命週期... – Matthias 2012-07-19 08:06:06

+0

好吧,我雖然說你想跳過一些階段 – ssedano 2012-07-19 08:26:23

+0

雅...我我不是以英語爲母語的人:-( – Matthias 2012-07-19 08:31:21

6

沒有基於生命週期名稱運行生命週期的命令。所以你不能mvn Default,並期望它運行到Default:deploy。您將不得不提及週期的任務,如test,package,clean,並且擁有此任務的生命週期將會激活。

以生命週期爲參數是沒有意義的。這會令人困惑。例如運行mvn clean是清潔生命週期還是乾淨任務?

或者,將會更詳細地輸入mvn clean將運行Clean生命週期;和mvn clean:clean將運行清潔生命週期,直到clean任務。


Maven有三個生命週期。執行任何生命週期的任務(比如task_N)將導致執行整個生命週期直到該任務(task_N)。這三個生命週期是清潔,默認網站

欲瞭解更多詳情請看這裏Introduction to Maven Life-cycles and task order

你看,當你執行說,mvn test這些都是在爲了

驗證>初始化>生成來源>工藝源>生成被執行的事-resources> process-resources> compile> process-classes> post-process> generate-test-sources> process-test-sources> generate-test-resources> process-test-resources> test-compile> process-test-classes > test

您不能跳過任何默認任務。您可以掛接在任務期間執行的插件。

+1

如果幾個階段的命名階段相同,會發生什麼? – Abdull 2013-08-20 13:33:16