2012-07-06 60 views
1

假設插件裏面有幾個目標。 例如:當提到maven插件時,如果<executions>元素不存在,哪個目標會被執行?

<plugins> 
    <plugin> 
     <groupId>sample.plugin</groupId> 
     <artifactId>hello-maven-plugin</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </plugin> 
</pulgins> 

或這樣的(沒有執行標籤,只是配置標記):

<plugin> 
    <groupId>sample.plugin</groupId> 
    <artifactId>hello-maven-plugin</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <configuration> 
    <greeting>Welcome</greeting> 
    </configuration> 
</plugin> 

回答

1
如果

<executions>不存在,無插件的目標將被執行。簡單。但請注意,在插件的目標和構建階段之間存在一些預定義的綁定,這些階段是由生命週期定義產生的,並且是工件封裝類型的結果。因此,您不必將maven-compiler-plugincompiletestCompile目標綁定到正確的階段,因爲它們已經在大多數包裝類型(如jarwar)的生命週期定義中被綁定。但是這個hello-maven-plugin,可能是你剛創建的,需要這樣的綁定,因爲沒有人知道它必須被執行。此外,請注意插件的mojos(目標)可以定義它們對生命週期階段的默認綁定,因此有時您只能看到<execution>定義中指定的沒有階段的目標。

+0

有沒有一種方法,maven可以根據配置的參數找到正確的目標? (如我的問題中的第二個代碼片段)。 – 2012-07-06 08:05:37

+1

我不這樣。這個配置只是需要注入到Plexus的Mojo(表示插件目標的Java類)字段中的值。要開始執行Mojo,你需要調用特定的目標。沒有什麼運行時間解決的事情。 – 2012-07-06 08:12:45

+0

你是對的。我有時看不到標籤,因爲它們是從父母族遺傳的。非常感謝。 – 2012-07-06 09:02:17

相關問題