spring boot 新增第三方jar 打包遇到的問題,
在用spring boot 做專案開發的時候,都是直接從mavn倉庫中拉取jar值不會遇到現有問題的。最近在做專案的時候由於用到了第三的jar包時候,用spring boot打包遇到的問題。
開發工具idea
1: 將專案打包成 可執行的jar檔案
按照以前整合專案的套路,直接將第三種的jar新增專案lib中即可。我也是這麼做的,在專案中新建lib資料夾,將第三放的jar copy進去。
2:依然dependency標籤引入第三種jar,寫法如下
scopre 寫成system , systemPath : 指向jar所在的位置。 不要按照以前的套路,在libraries中新增進來了。
3: 按照上述步驟,ide開發部署是沒有問題的。但是打包mvn clean package,第三方的jar,還是未能打進去,執行專案就會提示缺少jar檔案。
4:在spring-boot-maven-plugin中configuration下的includeSystemScope屬性指定為true即可了。
goal-repackage屬性為true,因為專案是多模組的,不然打包後文件不能將依賴檔案打包進去。
經過以上折騰,不管是ide開發部署,還是打包都沒問題了。
====================分割線==========================
第二種情況,將專案打包成war包呢,能正常工作嗎? 答案是:不行,是不是很桑心啊,,,哈哈哈哈哈
將專案打包成war包部署
1:首先修改專案的pom檔案,打包型別jar=》war
2: 按照spring boot的官方文件,說只需要新增2中的依賴(scope是provided)。 其他網友也說要在web排除tomcat的依賴,並新增上tomcat-servlet-apide 依賴,以防萬一加上吧,誰知道會出現什麼事情呢。
3:打war包的時候,有時候會提示說沒web.xml檔案,加上下面的話明確告訴 沒web.xml
4: 重點來了 設定maven-war-plugins外掛,否則外部依賴無法打進war包
這樣不管是可執行的jar , 還是war 都ok了