在用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了
原文請參考https://blog.csdn.net/chenxidong9/article/details/79412585