工作中,碰到過springboot框架建構的java web項目,需要整合第三方推送功能,於是使用到了小米推送服務,下載了相關jar套件。專案中引入本地jar,問題不大,寫完程式碼後,通過測試類別測試,也沒問題。然後就準備打包部署到開發服上。由於專案是透過tomcat部署的,所以打包方式是打成war包。打包後上傳到開發服,啟動成功後去測試編寫的推送接口,發現失敗了。
透過分析發現,打包後的war中存放項目依賴jar的lib目錄中並沒有本地引入的推送相關的jar包。折騰了半小時,才解決了問題。解決後才發現,其實是對maven這塊的基礎知識有點遺忘了。這裡總結下springboot專案引入本地jar包,如何透過maven打包將jar打進lib資料夾中:
注意:這裡由於導入的本地jar,所以 dependency>標籤中需要加入
<dependency> ... <!-- 表示当前jar是外部引入的,maven不会在repository查找它 --> <scope>system</scope> <!-- 指定引入的外部jar存放的路径,一般将jar包放在项目的某个目录下,通过相对路径指定 --> <systemPath>...</systemPath> </dependency>
<build> <finalName>xxxxxx</finalName> <plugins> <!--配置将第三方jar打进jar包中,跟<packaging>jar</packaging>配合,如果不写,springboot默认是打成jar包--> <!--<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 项目中单独引入第三方jar时,includeSystemScope值要为true <includeSystemScope>true</includeSystemScope> </configuration> </plugin>--> <!-- 打war包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <webResources> <!-- 配置将第三方jar打进war包中,跟<packaging>war</packaging>配合 --> <webResource> <directory>${pom.basedir}/src/main/resources/lib/</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </webResource> </webResources> </configuration> </plugin> </plugins> </build>
根據項目需要,打成jar包部署或war包部署,需要引入不同的插件,添加不同的配置。如果需要打成war包,不要忘了在pom.xml檔中加入war packaging>設定。
可以透過呼叫相關介面測試,也可直接觀察部署包中lib資料夾中是否存在引入的本地jar來判定
以上是springboot專案怎麼引入本地依賴jar包並打包到lib資料夾中的詳細內容。更多資訊請關注PHP中文網其他相關文章!