springboot以jar包運行
公司的springboot專案本來是打war包的,突然要求改成jar包,一路上碰到一些坑,在此記錄一下,
一、pom檔案配置
1、打包方式改成jar
<packaging>jar</packaging>
2、配置可執行jar包的maven插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 如果有依賴外部jar,則必須加上此配置includeSystemScope--> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
3、引入外部jar依賴(可選)
如果專案中引入了外部jar,可在專案根目錄創建lib檔案夾,將jar包放入lib中:

然后在pom檔案中引入jar包:
PS:如果專案以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>
二、打包運行
1、打包
打包命令,很簡單:
mvn install
2、運行
在生產和測驗環境,一般都需要保持行程一直在后臺運行,斷開終端也不中斷,則需要執行以下命令:
nohup java -jar test.jar &>>log.out &
三、組態檔優先級
spring boot會按以下順序去尋找組態檔:
1、“當前目錄”的/config檔案夾下
2、“當前目錄”下
3、classpath的/config檔案夾下
4、classpath下
注意事項:
- 當前目錄指的是執行java命令所在目錄,如果是通過shell腳本執行的java命令,則當前目錄指shell腳本所在目錄,如果在shell腳本中cd到某一目錄再執行的java命令,則當前目錄就指cd后的目錄,
- 不同優先級的組態檔都能被讀到,但相同的配置項,優先級高的組態檔的配置會覆寫優先級低的組態檔的配置,
- jar包內的組態檔不方便修改,生產上我們一般會將組態檔放在jar包外,
生產上可以直接將組態檔放在jar包所在目錄同級的config目錄,然后在腳本中cd到jar包所在目錄,執行java命令就可以讀到組態檔啦,
參考:https://www.cnblogs.com/taiyonghai/p/9561334.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288626.html
標籤:其他
上一篇:Python 執行緒池 ThreadPoolExecutor(二) - Python零基礎入門教程
下一篇:JWT了解一下
