maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh

 更新时间:2020年08月24日 09:44:33   作者:筏镜  
这篇文章主要介绍了maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

我们在项目中都会遇到项目打包,可以通过assembly对我们的项目进行打包。
1、首先看一下在打包前的项目文件结构。

在这里插入图片描述

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>
 <!--打包文件权限-->
 <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文件
脚本意思可以参考

https://www.jb51.net/article/39506.htm

日志可以参考

https://www.jb51.net/article/152599.htm

启动运行参数可以参考

https://www.jb51.net/article/161958.htm

https://www.jb51.net/article/107058.htm

在启动脚本的的时候可能会 ./start.sh 脚本的时候可能会报错

No such file or directory

这是由于在windows下编写的脚本文件,放到Linux中无法识别格式,编辑start.sh和stop.sh脚本文件,set ff=unix 设置为linux下环境

set ff=unix

在这里插入图片描述

查看脚本启动情况

tail -f -n 500 nohup.out

在这里插入图片描述

总结

到此这篇关于maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh的文章就介绍到这了,更多相关maven插件assembly使用springboot启动停止脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何使用jmeter录制浏览器Https请求过程图解

    如何使用jmeter录制浏览器Https请求过程图解

    这篇文章主要介绍了基于jmeter录制浏览器Https请求过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringBoot整合FreeMarker的过程详解

    SpringBoot整合FreeMarker的过程详解

    FreeMarker 是一个模板引擎,可以将模板与数据结合生成文本输出,本文给大家介绍SpringBoot整合FreeMarker的过程,感兴趣的朋友一起看看吧
    2024-01-01
  • Java中的SPI机制使用解析

    Java中的SPI机制使用解析

    这篇文章主要介绍了Java中的SPI机制使用解析,SPI意思是"服务提供者的接口",专门提供给服务提供者或者扩展框架功能的开发者去使用的接口,SPI 将服务接口和服务实现分离开来,将服务调用方和服务实现方进行解耦,需要的朋友可以参考下
    2023-10-10
  • springboot使用国产加密算法方式,sm2和sm3加解密demo

    springboot使用国产加密算法方式,sm2和sm3加解密demo

    这篇文章主要介绍了springboot使用国产加密算法方式,sm2和sm3加解密demo,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • java web实现自动登录功能

    java web实现自动登录功能

    这篇文章主要为大家详细介绍了java web实现自动登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Java多线程实现TCP网络Socket编程(C/S通信)

    Java多线程实现TCP网络Socket编程(C/S通信)

    这篇文章主要介绍了Java多线程实现TCP网络Socket编程(C/S通信),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • MyBatis详细执行流程的全纪录

    MyBatis详细执行流程的全纪录

    这篇文章主要给大家介绍了关于MyBatis详细执行流程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • java jpa查询没有id表的方法

    java jpa查询没有id表的方法

    本文主要介绍了java jpa查询没有id表的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • idea中如何创建scala项目

    idea中如何创建scala项目

    idea中创建scala项目有三种方式1.通过maven;2.通过idea;3.通过sbt的方式;本文就每种方法通过图文并茂的形式给大家详细介绍,需要的朋友参考下吧
    2021-07-07
  • Springboot文件上传功能的实现

    Springboot文件上传功能的实现

    这篇文章主要介绍了SpringBoot文件上传功能的实现,文中通过代码示例介绍的非常详细,具有一定的参考学习价值,需要的朋友们可以参考阅读
    2023-04-04

最新评论