SpringBoot三種打包方法舉例詳解
方法1. 使用mvn插件打包(推薦)
pom代碼
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> <mainClass>com.iristar.TestApplication</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <!-- springboot自帶build end-->
啟動(dòng)腳本
set path=%PATH%;dll java -jar ./target/evalserver-1.0-SNAPSHOT.jar spring.config.addition-location=./application.properties #!/bin/bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./dll java -jar ./target/evalserver-1.0-SNAPSHOT.jar spring.config.addition-location=./application.properties
方法2. 使用 idea的Artifacts打包
方法3. 使用package打包
pom代碼
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- spring-boot:run 中文亂碼解決 --> <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments> <mainClass>com.iristar.center.ht.ApiServer</mainClass> <!-- 生成的腳本文件的名稱,比如start.sh,你也可以根據(jù)你的需要命名成其他名字 --> </configuration> </plugin> <!--打包時(shí)跳過測試--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--打包部署插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf8</encoding> <compilerArgs> <arg>-XDignore.symbol.file</arg> </compilerArgs> <fork>true</fork> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>2.0.0</version> <executions> <execution> <id>Make Assembly</id> <!-- 綁定到package生命周期階段上 --> <phase>package</phase> <goals> <goal>assemble</goal> </goals> </execution> </executions> <configuration> <!-- 生成linux, windows兩種平臺(tái)的執(zhí)行腳本 --> <platforms> <platform>unix</platform> <platform>windows</platform> </platforms> <!-- 包存放的根目錄 --> <assembleDirectory>${project.build.directory}/product</assembleDirectory> <!-- 打包的jar,以及maven依賴的jar存放目錄 --> <repositoryName>lib</repositoryName> <!-- lib目錄中jar的存放規(guī)則,默認(rèn)是${groupId}/${artifactId}的目錄格式,flat表示直接把jar放到lib目錄 --> <!-- 可執(zhí)行腳本的存放目錄 --> <binFolder>bin</binFolder> <!-- 配置文件的存放目錄 --> <configurationDirectory>conf</configurationDirectory> <!-- 拷貝配置文件到上面的目錄中 --> <copyConfigurationDirectory>true</copyConfigurationDirectory> <!-- 從哪里拷貝配置文件 (默認(rèn)src/main/config) --> <configurationSourceDirectory>src/main/resources</configurationSourceDirectory> <repositoryLayout>flat</repositoryLayout> <encoding>UTF-8</encoding> <logsDirectory>logs</logsDirectory> <tempDirectory>tmp</tempDirectory> <programs> <program> <!-- 啟動(dòng)類 --> <mainClass>com.iristar.center.ht.ApiServer</mainClass> <!-- 生成的腳本文件的名稱,比如start.sh,你也可以根據(jù)你的需要命名成其他名字 --> <name>ApiServer</name> <jvmSettings> <extraArguments> <extraArgument>-server</extraArgument> <extraArgument>-Xmx2G</extraArgument> <extraArgument>-Xms2G</extraArgument> <extraArgument>-Dfile.encoding=UTF-8</extraArgument> </extraArguments> </jvmSettings> </program> </programs> </configuration> </plugin> <!--打包部署插件--> </plugins> <!--<resources>--> <!--<resource>--> <!--<directory>{project.basedir}/lib</directory>--> <!--<targetPath>${project.build.directory}/product/lib</targetPath>--> <!--<includes>--> <!--<include>**/*</include>--> <!--</includes>--> <!--</resource>--> <!--</resources>--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.yml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
命令如下
mvn clean package appassembler:assemble
注意事項(xiàng):
問題(1):
windows下提示輸入行太長
解決方法:
將原來的引入包的地方全部刪掉,改為*
問題(2):
windows下提示找不到動(dòng)態(tài)庫
解決方法:
setx -m PATH “%PATH%;./”
linux下提示找不到動(dòng)態(tài)庫
解決方法:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./
總結(jié)
到此這篇關(guān)于SpringBoot三種打包方法的文章就介紹到這了,更多相關(guān)SpringBoot打包方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot應(yīng)用啟動(dòng)過程分析
這篇文章主要介紹了SpringBoot應(yīng)用啟動(dòng)過程分析,需要的朋友可以參考下2017-08-08Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket
這篇文章主要介紹了Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket的相關(guān)資料,需要的朋友可以參考下2017-05-05SpringBoot 普通類調(diào)用Bean對象的一種方式推薦
這篇文章主要介紹了SpringBoot 普通類調(diào)用Bean對象的一種方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11淺談Java的Synchronized鎖原理和優(yōu)化
這篇文章主要介紹了Java的Synchronized鎖原理和優(yōu)化,synchronized的作用是保證在同一時(shí)刻, 被修飾的代碼塊或方法只會(huì)有一個(gè)線程執(zhí)行,以達(dá)到保證并發(fā)安全的效果,需要的朋友可以參考下2023-05-05MyBatis各種類型查詢數(shù)據(jù)參數(shù)綁定的實(shí)現(xiàn)
本文主要介紹了MyBatis各種類型查詢數(shù)據(jù)參數(shù)綁定的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06使用@Autowired注解警告Field injection is not recommended的解決
這篇文章主要介紹了使用@Autowired注解警告Field injection is not recommended的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04在IDEA中安裝MyBatis Log Plugin插件,執(zhí)行mybatis的sql語句(推薦)
這篇文章主要介紹了在IDEA中安裝MyBatis Log Plugin插件,執(zhí)行mybatis的sql語句,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Java Web項(xiàng)目中實(shí)現(xiàn)文件下載功能的實(shí)例教程
這篇文章主要介紹了Java Web項(xiàng)目中實(shí)現(xiàn)文件下載功能的實(shí)例教程,分別講解了通過超鏈接實(shí)現(xiàn)下載以及通過Servlet程序?qū)崿F(xiàn)下載的方式,需要的朋友可以參考下2016-05-05