MAVEN 填坑之旅

一、自定義插件(比較冷門)

 建議參考點擊打開鏈接

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章