2011-04-20 38 views
9

我已經編寫了一個在target/generated-sources /中生成一個文件的插件。 這個插件只有一個mojo。這種魔力都被定義如下:如何爲maven插件定義默認的mojo

/** 
* @goal convertsql 
* @phase generate-sources 
* @requiresProject 
*/ 
public class ConverterMojo extends AbstractMojo { 

在該項目中,我想使用的插件,但如果我不指定執行標記它不工作:

<executions> 
    <execution> 
     <id>convert</id> 
     <goals><goal>convertsql</goal></goals> 
     <phase>generate-sources</phase> 
    </execution> 
</executions> 

我會喜歡只配置像這樣的插件:

<plugin> 
    <groupId>com.my.plugins</groupId> 
    <artifactId>sqlconverter</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <configuration> 
     <sourceFile>src/main/resources/sql/schema_oracle.sql</sourceFile> 
    </configuration> 
</plugin> 

是否可以爲我的插件指定默認的mojo?默認的目標和階段是在mojo中定義的...我的意思是,當使用jar插件時,我不必告訴我要執行的目標,在哪個階段......它是自動的。

謝謝!

+0

如何你POM看起來像你的插件? – khmarbaise 2011-04-20 15:56:46

回答

1

您需要將META-INF/plexus/components.xml文件添加到您的插件並在您的插件塊中設置<extensions>true</extensions>

11.6.3. Overriding the Default Lifecycle從Maven的書以供參考

+0

謝謝,我已經嘗試過使用lifecycle.xml components.xml,無法使其工作......我忘了這個想法,我將把配置放在pom中。 – 2011-04-26 09:52:09

+0

@Jerome我自己也沒做過。我只是引用了文檔:-) – 2011-04-26 10:51:25

相關問題