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启动停止脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Maven3种打包方式中maven-assembly-plugin的使用详解

    maven-jar-plugin,默认的打包插件,用来打普通的project JAR包: maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包: maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等. 我们日常使用的以maven-assembly-plugin为最多,因为大数据项目中往往有很多shell脚本.SQL脚本..properties及.xml配置项等,采用assembly插件可以让输出的结构清晰而标准化. 要使用该插件

  • springboot启动脚本start.sh和停止脚本 stop.sh的详细教程

    我们在项目中都会遇到项目打包,可以通过assembly对我们的项目进行打包. 针对打包构建jar包,本文不再叙述.具体可以参考maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh 这里面已经有一个springboot 的启动脚本了,本文之所以还要写,是因为之前的脚本存在一个问题.关闭脚本的时候是通过kill -9 命令进行的,但其实我们项目中可能很多时候不能强制关闭的,在关闭之前需要做一些事情.比如将内存数据存到磁盘,dubbo清空zooke

  • 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> </plug

  • Centos下SpringBoot项目启动与停止脚本的方法

    使用Maven脚本在Centos服务器中启动与停止项目 首先项目需要引用Maven的SpringBoot插件 <profiles> <profile> <id>boot-repackage</id> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-

  • maven打包zip包含bin下启动脚本的完整代码

    maven打包zip包含bin下启动脚本,这个脚本小编在idea上测试有效: pom.xml打包 <build> <sourceDirectory>src/main/scala</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> <resources> <resource> <directory>src/main

  • SpringBoot使用Maven插件进行项目打包的方法

    SpringBoot自带Tomcat,所以我们的项目可以单独部署,不需要依赖Window.Linux系统中的服务器,所以打包出来的Jar包是可以直接运行的.Windows中直接cmd命令行模式下,cd切换到jar路径中,使用java 命令运行jart包,Linux环境也是一样的命令,如下图: 现在我们开始打包,我介绍两种方式,不管那种方式首先先在项目Pom.xml文件中引入Maven插件. <build> <plugins> <!-- 设置jdk版本为1.8 --> &

  • SpringBoot启动时自动执行sql脚本的方法步骤

    需要配置项目下的yml文件: 在文件下加如如下配置: data: classpath:code-generator-data.sql initialization-mode: always spring.datasource.initialization-mode: 初始化模式(springboot2.0),其中有三个值: always为始终执行初始化 embedded只初始化内存数据库(默认值),如h2等 never为不执行初始化 spring.datasource.data: 数据初始化,默

  • SpringBoot启动执行sql脚本的3种方法实例

    目录 背景 配置application.yml文件 自定义DataSourceInitializer Bean 启动时执行方法 Springboot自动执行sql文件 总结 背景 项目里后端需要计算坐标距离,想用sql实现算法,然后通过执行一个sql脚本,创建一个函数供各业务调用.我们需要在springboot项目启动时执行sql脚本,在网上一顿搜索,总结了有三种做法: 配置application.yml文件 自定义DataSourceInitializer Bean 启动时执行方法 第一种做法

  • SpringBoot启动并初始化执行sql脚本问题

    目录 SpringBoot启动并初始化执行sql脚本 我们先看一下源码 下面我们验证一下这两种方式 SpringBoot项目在启动时执行指定sql文件 1. 启动时执行 2. 执行多个sql文件 3. 不同运行环境执行不同脚本 4. 支持不同数据库 5. 避坑 总结 SpringBoot启动并初始化执行sql脚本 如果我们想在项目启动的时候去执行一些sql脚本该怎么办呢,SpringBoot给我们提供了这个功能,可以在启动SpringBoot的项目时,执行脚本,下面我们来看一下. 我们先看一下源

  • springboot打包不同环境配置以及shell脚本部署的方法

    前言 本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境的配置 通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可以通过两种方式: 通过a

  • maven 使用assembly 进行打包的方法

    1. pom 中添加assembly 插件 要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示: <build> <finalName>${project.artifactId}</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <director

随机推荐