簡體   English   中英

Maven插件開發:當在pom.xml中聲明插件時,有沒有一種方法可以自動運行該插件?

[英]Maven plugin development: is there a way to automatically run plugin when it's just declared in pom.xml?

我正在開發新的Mojo。 它只有一個目標,因此不強迫用戶添加executions部分(如果他們不想更改默認phase )似乎合乎邏輯。

這應該可行,因為當我添加一個非常簡單的surefire插件描述時,maven理解應該運行其單一目標test ,即:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4.3</version>
 </plugin>

這足以運行插件。

如何為插件實現類似的小型配置?

這是我現在所擁有的(如果沒有executions部分,它將不起作用):

/**
 *
 * @goal test
 * @phase test
 */
public class MyMojoPlugin extends AbstractMojo {

   ... (implementation details)    
}

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.somegroup</groupId>
    <artifactId>mymojo-maven-plugin</artifactId>
    <packaging>maven-plugin</packaging>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>2.0</version>
        </dependency>

        .... (other dependencies)

    </dependencies>

    <build>
        <plugins>
            ... (some plugins)
        </plugins>
    </build>

</project>

“默認”生命周期綁定是在Maven中定義的。 構建生命周期文檔中對此進行了描述,該文檔還指出插件需要“執行”部分。

我想您可以編輯component.xml並為特定站點重新編譯Maven。

在我看來,至少對於內部開發而言,更好的替代方法是使用包含特定於站點的配置的共享父POM。

編輯:我正在尋找對父POM的引用,並看到 我不確定這是否僅是Maven3功能,但可能值得研究。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM