国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Maven 自定義插件

1. provide

插件提供者 項目結(jié)構(gòu)

├── pom.xml├── src│ └── main│ ├── java│ │ └── com│ │ └── fantj│ │ └── mypluginprovide│ │ └── MyMojo.java│ └── resources│ └── application.properties└── target │ └── my-plugin-provide-0.0.1-SNAPSHOT.jar
1.1 修改packaging
 <packaging>maven-plugin</packaging>
1.2. 修改pom
<dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>3.5.0</version></dependency><dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.5</version></dependency>

這兩個依賴是自定義插件必須的依賴,代表了它是一個Mojo工程,里面包含了一些Mojo的接口和抽象類以及注解。

1.3 coding業(yè)務(wù)邏輯
@Mojo(name = 'fantj',defaultPhase = LifecyclePhase.PACKAGE)public class MyMojo extends AbstractMojo {    @Parameter    private String msg;    @Parameter    private List<String> list;    public void execute() throws MojoExecutionException, MojoFailureException {        System.out.println('hello plugin: ' msg   'list: '  list);    }}

注意這里面的@Parameter``@Mojo`` LifecyclePhase.PACKAGE都是org.apache.maven.plugins.annotations包下的:

import org.apache.maven.plugins.annotations.LifecyclePhase;import org.apache.maven.plugins.annotations.Mojo;import org.apache.maven.plugins.annotations.Parameter;

@Parameter注解會獲取消費者配置文件中的變量值并賦值。

defaultPhase = LifecyclePhase.PACKAGE聲明了該插件觸發(fā)的生命周期。

@Mojo定義插件的goal名字。

1.3. clean and install

執(zhí)行mvn clean install,在target目錄下會生成這樣一個jar包,這就是插件包。

2. consume

插件消費者 : 項目結(jié)構(gòu)

├── pom.xml└── src    └── main        ├── java        │   └── com        │       └── fantj        │           └── mypluginuse        └── resources            └── application.properties
2.1 修改pom
<?xml version='1.0' encoding='UTF-8'?><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/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.fantj</groupId> <artifactId>my-plugin-consume</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>com.fantj</groupId> <artifactId>my-plugin-provide</artifactId> <version>0.0.1-SNAPSHOT</version> <configuration> <msg>hello plugin</msg> <list> <list>one</list> <list>two</list> </list> </configuration> <!--在執(zhí)行package時候自動執(zhí)行自定義插件 將插件掛到 phase 中 --> <executions> <execution> <phase>package</phase> <goals> <goal>fantj</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>

如果不加<executions>,我們只能通過執(zhí)行插件或者執(zhí)行命令的方式來執(zhí)行,如果想讓它在執(zhí)行package的時候自動執(zhí)行,就需要設(shè)置該屬性,可以把它理解成hook。

2.2 如何傳遞參數(shù)給plugin

在插件提供者中,有個MyMojo的類,有這樣一段代碼:

    @Parameter    private String msg;    @Parameter    private List<String> list;

它和你用過的spring注解一樣,也是用來以注解的形式獲取參數(shù)的值。

相對應(yīng)的,在插件消費者的配置中我們就應(yīng)該相應(yīng)的給出參數(shù)的定義:

<configuration> <msg>hello plugin</msg> <list> <list>one</list> <list>two</list> </list></configuration>

上面的配置與變量名一一對應(yīng)即可。這時候你會發(fā)現(xiàn)maven插件中自動會添加一個plugins選項:

執(zhí)行該插件:mvn myprovide:fantj 或者直接點擊

[fantj@lalala my-plugin-consume]$ mvn myprovide:fantj[INFO] Scanning for projects...[INFO] [INFO] --------------------< com.fantj:my-plugin-consume >---------------------[INFO] Building my-plugin-consume 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO] [INFO] --- my-plugin-provide:0.0.1-SNAPSHOT:fantj (default-cli) @ my-plugin-consume ---hello plugin: hello pluginlist: [one, two][INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.347 s[INFO] Finished at: 2018-11-01T19:59:04 08:00[INFO] ------------------------------------------------------------------------
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Myeclipse搭建Maven開發(fā)環(huán)境
Maven入門教程(一)
使用Maven 2創(chuàng)建WebLogic Portal應(yīng)用程序
JMeterMavenPlugin
maven集成eclipse android項目辦法總結(jié)
Maven 那點事兒
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服