Maven Plugin的@Mojo和@Execute的具體使用
本文以spring-boot-maven-plugin 2.5.4為例
@Mojo defaultPhase
以spring-boot-maven-plugin:start為例, 他的@Mojo defaultPhase是PRE_INTEGRATION_TEST,該目標默認綁定到此階段.
@Mojo(name = "start", requiresProject = true, defaultPhase = LifecyclePhase.PRE_INTEGRATION_TEST, requiresDependencyResolution = ResolutionScope.TEST) public class StartMojo extends AbstractRunMojo { }
在pom中,我們隻需要指定goal,就會在PRE_INTEGRATION_TEST階段執行
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>start</id> <goals> <goal>start</goal> </goals> <!--如果額外指定phase=verify,會忽略defaultPhase,而在verify階段執行--> <phase>verify</phase> </execution> </executions>
@Execute phase
以spring-boot-maven-plugin:run為例,他的@Execute phase=TEST_COMPILE,在運行該目標前,讓maven先運行一個並行的生命周期,到指定的階段TEST_COMPLIE為止。到phase執行完,才執行插件目標
所以執行run,總是會運行到TEST_COMPLIE階段
@Mojo(name = "run", requiresProject = true, defaultPhase = LifecyclePhase.VALIDATE, requiresDependencyResolution = ResolutionScope.TEST) @Execute(phase = LifecyclePhase.TEST_COMPILE) public class RunMojo extends AbstractRunMojo {
參考資料
maven官方
博客
到此這篇關於Maven Plugin的@Mojo和@Execute的具體使用的文章就介紹到這瞭,更多相關Maven Plugin @Mojo和@Execute內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot maven 打包插件介紹及註意事項說明
- spring boot項目沒有mainClass如何實現打包運行
- SpringBoot自定義maven-plugin插件整合asm代碼插樁
- 使用springboot 打包插件去除jar包瘦身
- Maven如何打入依賴中指定的部分jar包