溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決

發(fā)布時(shí)間:2023-04-11 17:11:50 來源:億速云 閱讀:233 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決文章都會有所收獲,下面我們一起來看看吧。

spring-boot-maven-plugin:打包時(shí)排除provided依賴

spring-boot-maven-plugin 插件提供spring boot的maven打包支持。

項(xiàng)目中scope為provided的依賴,比如 lombok、mybatis-plus 等,只作用于編譯階段,編譯完成就可以功成身退了。

在spring maven打包時(shí),provided依賴會排除在包外,但springboot maven打包時(shí),還會將這些依賴打進(jìn) war 包的 lib-provided 文件夾里或 jar 包的 lib 文件夾里。

springboot項(xiàng)目構(gòu)建jar包或war包的命令為repackage,作用于maven生命周期的package階段,在 mvn package 執(zhí)行之后,這個(gè)命令再次打包生成可執(zhí)行的包,例如打jar包時(shí),生成可執(zhí)行jar包,同時(shí)將 mvn package 生成的 jar 重命名為 *.origin。

默認(rèn)情況下,repackage會將工程中引入的任何依賴打到包中。

以lombok為例,官方提供了以下方式可以將provided依賴從springboot項(xiàng)目包中排除。

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <scope>provided</scope>
</dependency>

通過指定groupId和artifactId排除某個(gè)特定的依賴

<build>
   <plugins>
       <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <configuration>
               <excludes>
                   <exclude>
                       <groupId>org.projectlombok</groupId>
                       <artifactId>lombok</artifactId>
                   </exclude>
               </excludes>
           </configuration>
       </plugin>
   </plugins>
</build>

指定groupId排除groupId相關(guān)的所有依賴

<build>
   <plugins>
       <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <configuration>
               <excludeGroupIds>org.projectlombok</excludeGroupIds>
           </configuration>
       </plugin>
   </plugins>
</build>

maven-compiler-plugin和spring-boot-maven-plugin的選擇

在搭建springboot項(xiàng)目時(shí)候,會遇到maven打包插件報(bào)錯(cuò)的情況,筆者做了一個(gè)測試,對這2種方式進(jìn)行一個(gè)驗(yàn)證 

maven-compiler-plugin方式

此種方式打出的包是一個(gè)普通jar,并不能執(zhí)行,但是可以被引用其中的bean??梢渣c(diǎn)開其jar包一探究竟,發(fā)現(xiàn)并沒有把依賴打進(jìn)包里。

spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決

 不含有root-inf,沒有依賴被打進(jìn)來。

spring-boot-maven-plugin方式

這種方式打出的包可執(zhí)行,但是我并沒有去驗(yàn)證其中的bean是否可以被引用。網(wǎng)上說不可被引用,有待進(jìn)一步驗(yàn)證。

打好的包到服務(wù)器上運(yùn)行,可運(yùn)行 ,且含有完整的依賴包

spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決

spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決

關(guān)于“spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“spring-boot-maven-plugin打包時(shí)排除provided依賴問題怎么解決”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI