[英]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.