springboot項(xiàng)目以jar包運(yùn)行的操作方法
什么是Spring Boot
Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新 Spring 應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。用我的話(huà)來(lái)理解,就是 Spring Boot 其實(shí)不是什么新的框架,它默認(rèn)配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
公司的springboot項(xiàng)目本來(lái)是打war包的,突然要求改成jar包,一路上碰到一些坑,在此記錄一下。
一、pom文件配置
1、打包方式改成jar
<packaging>jar</packaging>
2、配置可執(zhí)行jar包的maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 如果有依賴(lài)外部jar,則必須加上此配置includeSystemScope-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
3、引入外部jar依賴(lài)(可選)
如果項(xiàng)目中引入了外部jar,可在項(xiàng)目根目錄創(chuàng)建lib文件夾,將jar包放入lib中:

然后在pom文件中引入jar包:
PS:如果項(xiàng)目以war的形式打包,并且引入了外部jar,則maven插件的配置如下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
二、打包運(yùn)行
1、打包
打包命令,很簡(jiǎn)單:
mvn install
2、運(yùn)行
在生產(chǎn)和測(cè)試環(huán)境,一般都需要保持進(jìn)程一直在后臺(tái)運(yùn)行,斷開(kāi)終端也不中斷,則需要執(zhí)行以下命令:
nohup java -jar test.jar &>>log.out &
三、配置文件優(yōu)先級(jí)
spring boot會(huì)按以下順序去尋找配置文件:
1、“當(dāng)前目錄”的/config文件夾下
2、“當(dāng)前目錄”下
3、classpath的/config文件夾下
4、classpath下
注意事項(xiàng):
- 當(dāng)前目錄指的是執(zhí)行java命令所在目錄,如果是通過(guò)shell腳本執(zhí)行的java命令,則當(dāng)前目錄指shell腳本所在目錄,如果在shell腳本中cd到某一目錄再執(zhí)行的java命令,則當(dāng)前目錄就指cd后的目錄。
- 不同優(yōu)先級(jí)的配置文件都能被讀到,但相同的配置項(xiàng),優(yōu)先級(jí)高的配置文件的配置會(huì)覆蓋優(yōu)先級(jí)低的配置文件的配置。
- jar包內(nèi)的配置文件不方便修改,生產(chǎn)上我們一般會(huì)將配置文件放在jar包外。
生產(chǎn)上可以直接將配置文件放在jar包所在目錄同級(jí)的config目錄,然后在腳本中cd到j(luò)ar包所在目錄,執(zhí)行java命令就可以讀到配置文件啦。
參考:http://www.fzitv.net/article/216285.htm
到此這篇關(guān)于springboot項(xiàng)目以jar包運(yùn)行的操作方法的文章就介紹到這了,更多相關(guān)springboot jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot打包成jar發(fā)布的操作方法
- springboot項(xiàng)目打包發(fā)布部署的過(guò)程及jar和war的區(qū)別
- SpringBoot分離打Jar包的兩種配置方式
- 解決springboot?部署到?weblogic?中?jar?包沖突的問(wèn)題
- SpringBoot項(xiàng)目引入第三方sdk?jar包的解決方案
- SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑
- springboot 運(yùn)行 jar 包讀取外部配置文件的問(wèn)題
- 解決Spring導(dǎo)出可以運(yùn)行的jar包問(wèn)題
相關(guān)文章
WebsocketClient斷線(xiàn)的一些常見(jiàn)原因及解決辦法
這篇文章主要給大家介紹了關(guān)于WebsocketClient斷線(xiàn)的一些常見(jiàn)原因及解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用WebsocketClient斷線(xiàn)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12
Java線(xiàn)程中賣(mài)火車(chē)票問(wèn)題的深入講解
這篇文章主要給大家介紹了關(guān)于Java線(xiàn)程中賣(mài)火車(chē)票問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
分析Java非阻塞算法Lock-Free的實(shí)現(xiàn)
非阻塞算法一般會(huì)使用CAS來(lái)協(xié)調(diào)線(xiàn)程的操作。雖然非阻塞算法有諸多優(yōu)點(diǎn),但是在實(shí)現(xiàn)上要比基于鎖的算法更加繁瑣和負(fù)責(zé)。本文將會(huì)介紹兩個(gè)是用非阻塞算法實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)。2021-06-06
解決MyBatis中為類(lèi)配置別名,列名與屬性名不對(duì)應(yīng)的問(wèn)題
這篇文章主要介紹了解決MyBatis中為類(lèi)配置別名,列名與屬性名不對(duì)應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
詳解Java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的兩種方式
在開(kāi)發(fā)的過(guò)程中,很多業(yè)務(wù)場(chǎng)景需要一個(gè)樹(shù)形結(jié)構(gòu)的結(jié)果集進(jìn)行前端展示,也可以理解為是一個(gè)無(wú)限父子結(jié)構(gòu),常見(jiàn)的有報(bào)表指標(biāo)結(jié)構(gòu)、菜單結(jié)構(gòu)等,這篇文章主要介紹了Java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的兩種方式,需要的朋友可以參考下2022-10-10
Struts2中ognl遍歷數(shù)組,list和map方法詳解
這篇文章主要介紹了Struts2中ognl遍歷數(shù)組,list和map方法詳解,需要的朋友可以參考下。2017-09-09
Spring中allowedOriginPatterns和allowedOrigins方法有何不同詳解
這篇文章主要給大家介紹了關(guān)于Spring中allowedOriginPatterns和allowedOrigins方法有何不同,allowedOriginPatterns和allowedOrigins都是用來(lái)設(shè)置允許跨域請(qǐng)求的來(lái)源,需要的朋友可以參考下2023-10-10

