maven插件assembly使用及springboot啟動腳本start.sh和停止腳本 stop.sh
我們在項目中都會遇到項目打包,可以通過assembly對我們的項目進行打包。
1、首先看一下在打包前的項目文件結(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這個目錄下新增assembly.xml這個文件
<assembly>
<id>assembly</id>
<formats>
<!--打包的文件類型-->
<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>
<!--將項目文件打包為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、點擊 assembly:assembly 就能進行打包。

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
文件解壓運行start.sh文件
腳本意思可以參考
http://www.dhdzp.com/article/39506.htm
日志可以參考
http://www.dhdzp.com/article/152599.htm
啟動運行參數(shù)可以參考
http://www.dhdzp.com/article/161958.htm
http://www.dhdzp.com/article/107058.htm
在啟動腳本的的時候可能會 ./start.sh 腳本的時候可能會報錯
No such file or directory
這是由于在windows下編寫的腳本文件,放到Linux中無法識別格式,編輯start.sh和stop.sh腳本文件,set ff=unix 設(shè)置為linux下環(huán)境
set ff=unix

查看腳本啟動情況
tail -f -n 500 nohup.out

總結(jié)
到此這篇關(guān)于maven插件assembly使用及springboot啟動腳本start.sh和停止腳本 stop.sh的文章就介紹到這了,更多相關(guān)maven插件assembly使用springboot啟動停止腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于String不可變字符與StringBuilder可變字符的效率問題
這篇文章主要介紹了String不可變字符與StringBuilder可變字符的效率問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
通過springboot+mybatis+druid配置動態(tài)數(shù)據(jù)源
這篇文章主要介紹了通過springboot+mybatis+druid配置動態(tài)數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06
使用Mybatis時SqlSessionFactory對象總是報空指針
本文主要介紹了使用Mybatis時SqlSessionFactory對象總是報空指針,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09
java中VO PO DTO POJO BO DO對象的應(yīng)用場景及使用
文章介紹了Java開發(fā)中常用的幾種對象類型及其應(yīng)用場景,包括VO、PO、DTO、POJO、BO和DO等,并通過示例說明了它們在不同場景下的應(yīng)用2025-01-01
Java?中很好用的數(shù)據(jù)結(jié)構(gòu)(你絕對沒用過)
今天跟大家介紹的就是?java.util.EnumMap,也是?java.util?包下面的一個集合類,同樣的也有對應(yīng)的的?java.util.EnumSet,對java數(shù)據(jù)結(jié)構(gòu)相關(guān)知識感興趣的朋友一起看看吧2022-05-05

