您好,登錄后才能下訂單哦!
這篇文章主要介紹了spring-boot-maven-plugin打包時排除provided依賴問題怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇spring-boot-maven-plugin打包時排除provided依賴問題怎么解決文章都會有所收獲,下面我們一起來看看吧。
spring-boot-maven-plugin 插件提供spring boot的maven打包支持。
項目中scope為provided的依賴,比如 lombok、mybatis-plus 等,只作用于編譯階段,編譯完成就可以功成身退了。
在spring maven打包時,provided依賴會排除在包外,但springboot maven打包時,還會將這些依賴打進 war 包的 lib-provided 文件夾里或 jar 包的 lib 文件夾里。
springboot項目構建jar包或war包的命令為repackage,作用于maven生命周期的package階段,在 mvn package 執行之后,這個命令再次打包生成可執行的包,例如打jar包時,生成可執行jar包,同時將 mvn package 生成的 jar 重命名為 *.origin。
默認情況下,repackage會將工程中引入的任何依賴打到包中。
以lombok為例,官方提供了以下方式可以將provided依賴從springboot項目包中排除。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
<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>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludeGroupIds>org.projectlombok</excludeGroupIds> </configuration> </plugin> </plugins> </build>
在搭建springboot項目時候,會遇到maven打包插件報錯的情況,筆者做了一個測試,對這2種方式進行一個驗證
此種方式打出的包是一個普通jar,并不能執行,但是可以被引用其中的bean。可以點開其jar包一探究竟,發現并沒有把依賴打進包里。
不含有root-inf,沒有依賴被打進來。
這種方式打出的包可執行,但是我并沒有去驗證其中的bean是否可以被引用。網上說不可被引用,有待進一步驗證。
打好的包到服務器上運行,可運行 ,且含有完整的依賴包
關于“spring-boot-maven-plugin打包時排除provided依賴問題怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“spring-boot-maven-plugin打包時排除provided依賴問題怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。