免费xxxx大片国产片_精品在线一区_亚洲午夜福利av_亚洲色大成人一区二区_无码熟妇人妻AV在线影片免费

您的位置:首頁 >法制 >

spring-boot-maven-plugin插件詳解_環(huán)球快資訊

2023-06-25 06:21:59 來源:博客園
一、 為什么Spring Boot項(xiàng)目自帶這個插件

當(dāng)我們在SpringBoot官方下載一個腳手架時,會發(fā)現(xiàn)pom.xml會自帶spring-boot-maven-plugin插件


(資料圖片僅供參考)

4.0.0org.springframework.bootspring-boot-starter-parent2.7.12com.zhuangpomaven-plugin0.0.1-SNAPSHOTmaven-plugin1.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-maven-plugin

那為什么會自帶這個插件呢?

我們知道Spring Boot項(xiàng)目,是可以通過java -jar 包名啟動的

打包命令

mvn clean package

打包成功后就會生成一個jar包

試下是否可以通過java -jar 包名啟動項(xiàng)目

發(fā)現(xiàn)是可以正常啟動。

這個時候我們?nèi)サ魋pring-boot-maven-plugin插件,通過 mvn clean package再打一次包。

打包依然成功,包名也一樣,只是jar包大小有著天壤之別

發(fā)現(xiàn)只有3KB,之前的有17.7MB。

我們通過java -jar 包名看能否啟動成功。

localhost:target xub$ java -jar maven-plugin-0.0.1-SNAPSHOT.jar maven-plugin-0.0.1-SNAPSHOT.jar中沒有主清單屬性

發(fā)現(xiàn)并不能啟動成功,這是為什么呢?

一般的maven項(xiàng)目的打包命令,不會把依賴的jar包也打包進(jìn)去的,只是會放在jar包的同目錄下,能夠引用就可以了。

但是spring-boot-maven-plugin插件,會將依賴的jar包全部打包進(jìn)去。該文件包含了所有的依賴和資源文件,可以直接在命令行或者傳統(tǒng)的 Java Web 服務(wù)器上啟動運(yùn)行。

二、插件介紹1、插件標(biāo)簽詳解
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ......                                                                                                                                                        
2、內(nèi)部goals

該插件提供了7個maven goal

build-image: 將程序使用 buildpack 打包進(jìn)容器鏡像中。build-info:生成項(xiàng)目的構(gòu)建信息文件 build-info.propertieshelp:顯示幫助信息。調(diào)用mvn spring-boot:help -Ddetail=true -Dgoal=以顯示參數(shù)詳細(xì)信息。repackage:可生成可執(zhí)行的jar包或war包。插件的核心goal。run:運(yùn)行 Spring Boot 應(yīng)用start:在集成測試階段,控制生命周期stop:在集成測試階段,控制生命周期

為什么這里插件名稱叫spring-boot?

原因:自定義插件如果遵循 xxx-maven-plugin 的形式,maven 默認(rèn)會將 maven-plugin 前面的內(nèi)容作為插件前綴。

三、該插件常見使用場景1、排除provided類型的依賴

默認(rèn)情況下,repackage命令所生成的包,會把項(xiàng)目中所有的依賴都打進(jìn)去。

但其實(shí)在項(xiàng)目中scope為provided的依賴,比如 lombok、mybatis-plus等,只作用于編譯階段,編譯完成就沒用了。

若除去provided依賴,可以使用如下的配置:

org.springframework.bootspring-boot-maven-plugin   org.projectlombok   lombok
2、指定Mainclass類

如果未指定,main將使用找到的第一個包含方法的編譯類。

也就是說如果只有一個main方法,那不需要去指定,如果你這個模塊存在兩個主類,那么就需要在插件中指定具體哪個啟動類了。

   org.springframework.boot   spring-boot-maven-plugin       com.zhuangpo.mavenplugin.MavenPluginApplication    ZIP    

layout 屬性用來指定打成 jar 還是war 文件,可用的值包括:ZIP 、JAR 、WAR、 NONE 。默認(rèn)JAR

3、在使用spring-boot-maven-plugin的下生成普通的jar包

前面說了,如果使用該插件,那么打出來的包是一個可執(zhí)行的jar包,這樣的jar包,在被別的項(xiàng)目引用的時候,可能會出問題。

那如何打成一個普通的jar包。

當(dāng)然你可以把這個插件注釋掉,重新打包。不過這樣做未必太愚蠢啦。

解決辦法

第一種:通過命令

mvn clean package -D spring-boot.repackage.skip=true 

加上-Dspring-boot.repackage.skip=true參數(shù)即可,此時只會生成一個普通的jar包

第二種:通過配置

org.springframework.bootspring-boot-maven-plugintrue

這兩種方式打出來的包就是沒有依賴jar的普通包了。

聲明: 公眾號如需轉(zhuǎn)載該篇文章,發(fā)表文章的頭部一定要 告知是轉(zhuǎn)至公眾號: 后端元宇宙。同時也可以問本人要markdown原稿和原圖片。其它情況一律禁止轉(zhuǎn)載!

關(guān)鍵詞: