SpringBoot將所有依賴(lài)(包括本地jar包)打包到項(xiàng)目
SpringBoot將所有依賴(lài)(包括本地jar包)打包到項(xiàng)目
Maven 添加本地依賴(lài)包
在項(xiàng)目根目錄添加lib文件夾,存放不在maven倉(cāng)庫(kù)中存在的jar包
如下兩個(gè)推送包,(名字可以自定義
//華為推送服務(wù)端jar包 HwPush_SDK_Server_0_3_12.jar //小米推送服務(wù)端jar包 MiPush_SDK_Server_2_2_18.jar
1.在pom.xml中添加依賴(lài)
<dependency> <groupId>com.xiaomi</groupId> <artifactId>MiPush_SDK_Server_2_2_18</artifactId> <version>2.2.18</version> <scope>system</scope> <systemPath>${project.basedir}/lib/MiPush_SDK_Server_2_2_18.jar </systemPath> </dependency> <!-- 華為推送 --> <dependency> <groupId>com.huawei.hms</groupId> <artifactId>HwPush_SDK_Server_0_3_12</artifactId> <version>0.3.12</version> <scope>system</scope> <systemPath>${project.basedir}/lib/HwPush_SDK_Server_0_3_12.jar</systemPath> </dependency>
1.在SpriingBoot中將本地jar包打包到項(xiàng)目的jar包里,需要build中添加如下內(nèi)容
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 指定SpringBoot程序的main函數(shù)入口類(lèi) --> <mainClass>com.redsoft.epip.EPIPApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <!-- 打包本地jar包 --> <extdirs>${project.basedir}/lib</extdirs> </compilerArguments> </configuration> </plugin> </plugins> <!-- 打包所有jar包 --> <resources> <resource> <directory>lib</directory> <targetPath>BOOT-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> <!-- 某些情況下,打包后運(yùn)行不起來(lái)需要打開(kāi)注釋 --> <!-- <resource> <directory>src/main/resources</directory> <targetPath>BOOT-INF/classes/</targetPath> </resource> --> </resources> </build>
執(zhí)行package命令后即可將本地jar包打進(jìn)去
Springboot中如何引入本地jar包,并通過(guò)maven把項(xiàng)目成功打包成jar包部署
這個(gè)jar包不在maven倉(cāng)庫(kù)里面,如果我們要引入這個(gè)下載的jar包。有兩種方法可以試試:
- 本地直接引入,打包到依賴(lài)文件中。
- 打包上傳到maven本地倉(cāng)庫(kù)中,然后pom文件正常引入。
直接本地引入
- 在resource文件夾下面新建lib文件夾,需要的數(shù)據(jù)庫(kù)jar包放到這里
- 在pom文件中引入剛剛添加的文件。
<dependency> <groupId>cn.sgclub.utils</groupId> <artifactId>common-utils</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/cn.sgclub.utils.common-utils-1.0.0.jar</systemPath> </dependency>
groupId
和artifactId
可以自定義,建議和所要引入的jar包不要有太大的出入,
version
填寫(xiě)引入jar包的版本號(hào)即可。
systemPath
這個(gè)路徑填寫(xiě)jar包的所在路徑。
scope
需要填寫(xiě)system,這個(gè)不可省略,否則可能會(huì)報(bào)錯(cuò)。
${project.basedir}
是一個(gè)系統(tǒng)常量,代表當(dāng)前項(xiàng)目的根目錄。
- 項(xiàng)目打包時(shí)引入本地jar包,需要在打包插件中引入
<includeSystemScope>
,具體的如下所示。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
上傳jar包到maven倉(cāng)庫(kù)
我們還可以使用相關(guān)的maven命令,把相關(guān)的jar包上傳到maven倉(cāng)庫(kù),然后就可以在項(xiàng)目中直接引用了。
mvn?install:install-file -Dfile=D:/Workspace/cn.sgclub.utils.common-utils-1.0.0.jar -DgroupId=cn.sgclub.utils? -DartifactId=common-utils -Dversion=1.0.0 -Dpackaging=jar
-Dfile
:jar包文件的地址
-DgroupId
:引入依賴(lài)時(shí)填寫(xiě)的groupId
-DartifactId
:引入依賴(lài)時(shí)填寫(xiě)的artifactId
-Dversion
:版本號(hào)
-Dpackaging
:打包方式
如此一來(lái)基本上可以滿(mǎn)足我們的需求了,如果有需要再補(bǔ)充打包到遠(yuǎn)端倉(cāng)庫(kù)的操作。
到此這篇關(guān)于SpringBoot將所有依賴(lài)(包括本地jar包)打包到項(xiàng)目的文章就介紹到這了,更多相關(guān)SpringBoot所有依賴(lài)打包到項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring循環(huán)依賴(lài)代碼演示及解決方案
這篇文章主要介紹了Spring循環(huán)依賴(lài)實(shí)現(xiàn)過(guò)程,Spring的解決循環(huán)依賴(lài)是有前置條件的,要解決循環(huán)依賴(lài)我們首先要了解Spring Bean對(duì)象的創(chuàng)建過(guò)程和依賴(lài)注入的方式2023-04-04動(dòng)態(tài)修改spring?aop?切面信息提升自動(dòng)日志輸出框架效率
這篇文章主要為大家介紹了動(dòng)態(tài)修改spring?aop切面信息提升自動(dòng)日志輸出框架效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07淺談java中對(duì)集合對(duì)象list的幾種循環(huán)訪問(wèn)
下面小編就為大家?guī)?lái)一篇java中對(duì)集合對(duì)象list的幾種循環(huán)訪問(wèn)詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07一篇文章掌握J(rèn)ava?Thread的類(lèi)及其常見(jiàn)方法
Thread類(lèi)用于操作線程,是所以涉及到線程操作(如并發(fā))的基礎(chǔ)。本文將通過(guò)代碼對(duì)Thread類(lèi)的功能作用及其常見(jiàn)方法進(jìn)行分析2022-03-03JAVA中通過(guò)Redis實(shí)現(xiàn)延時(shí)任務(wù)demo實(shí)例
Redis在2.0版本時(shí)引入了發(fā)布訂閱(pub/sub)功能,在發(fā)布訂閱中有一個(gè)channel(頻道),與消息隊(duì)列中的topic(主題)類(lèi)似,可以通過(guò)redis的發(fā)布訂閱者模式實(shí)現(xiàn)延時(shí)任務(wù)功能,實(shí)例中會(huì)議室預(yù)約系統(tǒng),用戶(hù)預(yù)約管理員審核后生效,如未審批,需要自動(dòng)變超期未處理,使用延時(shí)任務(wù)2024-08-08詳解Java synchronized關(guān)鍵字的用法
在多線程編程中常常使用鎖機(jī)制來(lái)確保同一時(shí)刻只有一個(gè)線程能夠修改共享內(nèi)存,在Java中一般是使用synchronized作為鎖機(jī)制,下面就讓我們來(lái)學(xué)習(xí)一下如何使用synchronized實(shí)現(xiàn)線程安全吧2023-08-08