? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 原創(chuàng)者:文思
什么是maven及maven的基本常識(shí)這里就不再描述了,直接介紹ide中maven插件的基本用法,以及maven在spring boot項(xiàng)目中打包時(shí)容易遇到的坑。
一、插件介紹
1、myeclipse中maven插件簡(jiǎn)介
Maven4MyEclipse是Maven和MyEclipse
IDE之間進(jìn)一步的整合和常用插件。這種整合消除了一些Maven用戶最常見的障礙,包括:
a 從MyEclipse類路徑容器的后臺(tái)安裝Sun JARs到您的本地Maven倉庫中
b 運(yùn)行時(shí)的JDK簡(jiǎn)單配置和編譯時(shí)的Maven
c ?簡(jiǎn)單安裝自己的JAR到Maven倉庫中
d ?停留在IDE中并可以從UI中執(zhí)行所有的Maven任務(wù)
前兩個(gè)分別是添加依賴與插件,與在pom中直接編輯添加無異:
Download Source與javaDoc是下載源碼與文檔,不用細(xì)說.
update project本身是更新項(xiàng)目的意思,當(dāng)修改了pom文件沒有自動(dòng)及時(shí)生效時(shí),update?project會(huì)更新相對(duì)應(yīng)的“eclipse的.classpath”文件,手工更新項(xiàng)目。
備注:如果原JDK版本為1.7, 使用Maven > Update project的時(shí)候JDK版本都恢復(fù)成1.5的話,在“pom.xml”文件中增加如下配置之后再次重新Maven > Update project即可:
Disable Maven Nature轉(zhuǎn)為一般工程
Enable Workspace Resolution:打開這個(gè)選項(xiàng)以后,在Workspace中配置的工程才會(huì)作為依賴工程,如果disable之后,則會(huì)被視為靜態(tài)的依賴jar包。
打開時(shí)如下:
關(guān)閉時(shí):
二、打包
打包有兩種方式:第1種是maven install,這個(gè)時(shí)候不用配置命令的,右鍵工程--》run as 或者dabug as 中都有,如果之前打過包了,但還沒有清除容易失敗,所以打包前最好先clean一下。第2中在doc下手工執(zhí)行maven的package打包的命令。
1:ide中打包
1.1利用ide中的maven build只打包,不發(fā)布
首先,maven沒有build命令,ide中的build等同于Maven命令,只是代表準(zhǔn)備要執(zhí)行的maven命令,可以在build中執(zhí)行任何命令(包括clean和deploy等)
在ide的build中執(zhí)行maven的package命令,打包前最好先clean一下:
1.2利用ide中的maven install打包后發(fā)布到本地倉庫:
ide的maven install相當(dāng)于maven命令的:mvn intall,而mvn install相當(dāng)于mvn?package+mvn deploy本地倉庫參數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2:在doc窗口中,在項(xiàng)目下執(zhí)行mvn package,建議mvn clean package,先清除再打包
三、基于spring boot項(xiàng)目應(yīng)用的打包
打包后找不到pom下spring boot的依賴包了:
檢查pom中的插件配置plugs:
由于spring boot風(fēng)格的項(xiàng)目在項(xiàng)目結(jié)構(gòu)與pom關(guān)系上與普通項(xiàng)目不同,不使用SpringBoot自帶的插件,因?yàn)檫@個(gè)打包會(huì)打包在Spring-Boot目錄下導(dǎo)致別的項(xiàng)目引用時(shí)引用不到,Spring Boot的Maven插件(Spring Boot Maven plugin)能夠以Maven的方式為應(yīng)用提供Spring?Boot的支持,即為Spring Boot應(yīng)用提供了執(zhí)行Maven操作的可能。Spring Boot Maven plugin能夠?qū)pring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以通常的方式運(yùn)行Spring?Boot應(yīng)用。
?Spring?Boot Maven plugin的5個(gè)Goals
?a:spring-boot:repackage,默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war,同時(shí)保留mvn?package生成的jar/war為.origin
b:spring-boot:run,運(yùn)行Spring?Boot應(yīng)用
c:spring-boot:start,在mvn?integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理
d:spring-boot:stop,在mvn?integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理
e:spring-boot:build-info,生成Actuator使用的構(gòu)建信息文件build-info.properties
如果你的POM不是繼承spring-boot-starter-parent的話,需要下面的指定:
或者
要打war包則:
參考指南:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html
spring-boot-maven-plugin待研究細(xì)節(jié)