一、自定義插件(比較冷門)
建議參考點擊打開鏈接
1、創建一個MAVEN項目 packing指定爲maven-plugin
2、pom.xml中加入maven-plugin的依賴
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.1.1</version>
</dependency>
3、編寫plugin的實現類 即繼承AbstractMojo
4、部分註解:
@goal info:表示該插件的服務目標
@phase compile:表示該插件的生效週期階段
@requiresProject false:表示是否依託於一個項目才能運行該插件
@parameter expression="${name}":表示插件參數,使用插件的時候會用得到
@required:代表該參數不能省略
5. 安裝插件
把項目打成jar包, 打開terminal,進入到項目根目錄(有POM.XML的地方),輸入mvn package
之後打包好的jar包會在target目錄中
6.部署插件到本地repository
mvn install:install-file -DgroupId=com.allen.test -DartifactId=weblogic-maven-plugin -Dversion=1.0 -Dpackaging=jar -Dfile=${project_dir}/target/${jarFileName}
把${project_dir}換成你的真實目錄
${jarFileName}換成你的jar名字
關鍵是要讓maven找到你的jar
7. 測試你的插件
在terminal 中輸入
mvn ${groupId}:${artifactId}:${goal} -Dstr=str -Dlabel=label
${groupId},${artifactId} 就是之前插件定義或者在任一項目中引用
二、MAVEN 包衝突
總綱:用IDEA可以很快的解決這個問題,只需要看maven dependency,然後紅色的都是有衝突的,如果知道是哪個JAR衝突,直接搜索就可以看得到所有引用,可以很快的定位到是哪個JAR引用了
1、判斷jar是否正確的被引用
查找有衝突的JAR
mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId
解決衝突
在pom.xml中引用的包中加入exclusion,排除依賴
1、判斷jar是否正確的被引用
1)、在項目啓動時加上VM參數:-verbose:class