Mojo插件demo


Mojo : Maven plain Old Java Object
每一個 Mojo 就是 Maven 中的一個執行目標( executable goal),而插件則是對單個或多個相關的 Mojo 做統一分發。
一個 Mojo 包含一個簡單的 Java 類。
插件中多個類似 Mojo 的通用之處可以使用抽象父類來封裝。


步驟:

1.創建Maven項目

 

 

 

2. 添加pom依賴

<dependencies>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugin-tools</groupId>
      <artifactId>maven-plugin-annotations</artifactId>
      <version>3.2</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

3. 新建Mojo類

注解形式:

@Mojo(name = "hello", requiresDependencyResolution = ResolutionScope.COMPILE)
public class HelloMojo extends AbstractMojo {

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {
        System.out.println("Hello Mojo!");
    }
}

doc形式:

/**
 * @goal hello
 */
public class HelloMojo extends AbstractMojo {

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {
        System.out.println("Hello Mojo!");
    }
}

Mojo 的查找機制:在處理源碼的時候,plugin-tools 會把使用了 @Mojo 注解或 Javadoc 里包含 @goal 注釋的類來當作一個 Mojo 類

 

4.構建發布mojo插件本地

mvn install

 

5.如何用?

<plugin>
       <groupId>com.code</groupId>
       <artifactId>mojo-demo</artifactId>
       <version>1.0-SNAPSHOT</version>
            <executions>
                 <execution>
                      <phase>compile</phase>
                      <goals>
                           <goal>hello</goal>
                       </goals>
                 </execution>
       </executions>
</plugin>

在使用使用的項目中引入此插件,<goal>指定運行的mojo,在項目compile時自動運行此插件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM