maven插件assembly使用及springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh
我們?cè)陧?xiàng)目中都會(huì)遇到項(xiàng)目打包,可以通過(guò)assembly對(duì)我們的項(xiàng)目進(jìn)行打包。
1、首先看一下在打包前的項(xiàng)目文件結(jié)構(gòu)。

2、在pom.xml中配置assembly插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <!-- 綁定到package生命周期階段上 --> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
3、在assembly這個(gè)目錄下新增assembly.xml這個(gè)文件
<assembly>
 <id>assembly</id>
 <formats>
 <!--打包的文件類(lèi)型-->
 <format>tar.gz</format>
 </formats>
 <includeBaseDirectory>false</includeBaseDirectory>
 <fileSets>
 <fileSet>
 <directory>src/main/assembly/bin</directory>
 <outputDirectory>/bin</outputDirectory>
 <includes>
 <include>*.sh</include>
 </includes>
 <!--打包文件權(quán)限-->
 <fileMode>0755</fileMode>
 </fileSet>
 <fileSet>
 <!--原文件目錄-->
 <directory>src/main/resources</directory>
 <!--打包的目錄-->
 <outputDirectory>/conf</outputDirectory>
 </fileSet>
 <!--將項(xiàng)目文件打包為jar文件-->
 <fileSet>
 <directory>${project.build.directory}</directory>
 <outputDirectory>/lib</outputDirectory>
 <includes>
 <include>*.jar</include>
 </includes>
 </fileSet>
 </fileSets>
 <!--添加 jar的打包-->
 <dependencySets>
 <dependencySet>
 <outputDirectory>lib</outputDirectory>
 </dependencySet>
 </dependencySets>
</assembly>
4、點(diǎn)擊 assembly:assembly 就能進(jìn)行打包。

5、查看打好包的文件

5、附上start.sh,stop.sh文件
start.sh文件
#!/usr/bin/env bash
#source $(dirname $0)/../../env.sh
SERVERJAR="database-project-0.0.1-SNAPSHOT.jar"
base_dir=$(dirname $0)
cd ..
if [ "$JAVA_HOME" != "" ]; then
 JAVA="$JAVA_HOME/bin/java"
else
 JAVA=java
fi
JAVA_OPTS="-server -Xms32m -Xmx32m -Xmn24m -Xss256K \
-XX:SurvivorRatio=4 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection \
-XX:CMSInitiatingOccupancyFraction=60 -XX:+PrintGCDateStamps \
-XX:+PrintGCDetails -Xloggc:$base_dir/gc.log"
echo -n "Starting server ..."
 PID=$(ps -ef | grep database-project-0.0.1-SNAPSHOT.jar | grep -v grep |awk '{print $2}')
if [ -z "$PID" ]; then
 echo Application is already stopped
else
 echo kill $PID
 kill -9 $PID
fi
echo `pwd`
echo $SERVERJAR
echo $JAVA
echo $JAVA_OPTS
echo $JAVA_DEBUG_OPT
nohup $JAVA $JAVA_OPTS $JAVA_DEBUG_OPT -jar lib/$SERVERJAR > $base_dir/nohup.out &
if [ $? -eq 0 ];then
 # echo -n $! > "$PIDFILE"
 if [ $? -eq 0 ]
 then
 sleep 1
 echo STARTED
 else
 echo FAILED TO WRITE PID
 exit 1
 fi
else
 echo SERVER DID NOT START
 exit 1
fi
stop.sh
#!/usr/bin/env bash
SERVERJAR="database-project-0.0.1-SNAPSHOT.jar"
base_dir=$(dirname $0)
echo -n "Stopping server ..."
 PID=$(ps -ef | grep database-project-0.0.1-SNAPSHOT.jar | grep -v grep |awk '{print $2}')
if [ -z "$PID" ]; then
 echo Application is already stopped
else
 echo kill $PID
 kill -9 $PID
fi
exit 0
文件解壓運(yùn)行start.sh文件
腳本意思可以參考
http://www.dbjr.com.cn/article/39506.htm
日志可以參考
http://www.dbjr.com.cn/article/152599.htm
啟動(dòng)運(yùn)行參數(shù)可以參考
http://www.dbjr.com.cn/article/161958.htm
http://www.dbjr.com.cn/article/107058.htm
在啟動(dòng)腳本的的時(shí)候可能會(huì) ./start.sh 腳本的時(shí)候可能會(huì)報(bào)錯(cuò)
No such file or directory
這是由于在windows下編寫(xiě)的腳本文件,放到Linux中無(wú)法識(shí)別格式,編輯start.sh和stop.sh腳本文件,set ff=unix 設(shè)置為linux下環(huán)境
set ff=unix

查看腳本啟動(dòng)情況
tail -f -n 500 nohup.out

總結(jié)
到此這篇關(guān)于maven插件assembly使用及springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh的文章就介紹到這了,更多相關(guān)maven插件assembly使用springboot啟動(dòng)停止腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
 Java實(shí)現(xiàn)AES/CBC/PKCS7Padding加解密的方法
這篇文章主要介紹了Java實(shí)現(xiàn)AES/CBC/PKCS7Padding加解密的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
 SpringBoot通過(guò)計(jì)劃任務(wù)發(fā)送郵件提醒的代碼詳解
在實(shí)際線上項(xiàng)目中,有不斷接受到推送方發(fā)來(lái)的數(shù)據(jù)場(chǎng)景,而且是不間斷的發(fā)送,如果忽然間斷了,應(yīng)該是出問(wèn)題了,需要及時(shí)檢查原因,這種情況比較適合用計(jì)劃任務(wù)做檢查判斷,出問(wèn)題發(fā)郵件提醒,本文給大家介紹了SpringBoot通過(guò)計(jì)劃任務(wù)發(fā)送郵件提醒,需要的朋友可以參考下2024-11-11
 Java 比較接口comparable與comparator區(qū)別解析
這篇文章主要介紹了Java 比較接口comparable與comparator區(qū)別解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
 Java經(jīng)典排序算法之冒泡排序代碼實(shí)例
這篇文章主要介紹了Java經(jīng)典排序算法之冒泡排序代碼實(shí)例,相鄰兩元素進(jìn)行比較,如過(guò)左側(cè)元素大于右側(cè)元素,則進(jìn)行交換,每完成一次循環(huán)就將最大元素排在最后,下一次循環(huán)是將其它的數(shù)進(jìn)行類(lèi)似操作,需要的朋友可以參考下2023-11-11
 Jmeter?BlazeMeter實(shí)現(xiàn)web錄制過(guò)程
BlazeMeter是一款與Apache JMeter兼容的chrome插件,采用BlazeMeter可以方便的進(jìn)行流量錄制和腳本生成,作為接口測(cè)試腳本編寫(xiě)的一個(gè)基礎(chǔ),這篇文章主要介紹了Jmeter?BlazeMeter實(shí)現(xiàn)web錄制,需要的朋友可以參考下2021-12-12
 @Scheduled 如何讀取動(dòng)態(tài)配置文件
這篇文章主要介紹了@Scheduled 如何讀取動(dòng)態(tài)配置文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06

