Linux SpringBoot项目、jar包部署,shell脚本
2019-01-22 10:48
876 查看
springboot 是默认集成Tomcat容器的,将项目打包成jar包库、使用Java直接启动jar包(非spring boot也可以)
1:首先需要在服务器端安装jdk、maven、本文还安装了git,方便拉取要部署的项目
2:想要SpringBoot项目使用maven打包成jar包需先在项目中的pom添加build插件,代码如下
[code]<build> <plugins> <plugin> <artifactId>maven-dependency-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/libs</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <includeScope>compile</includeScope> <!--<includeScope>runtime</includeScope>--> </configuration> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!-- <outputDirectory>libs</outputDirectory> --> <excludeTransitive>false</excludeTransitive> <stripVersion>true</stripVersion> </configuration> </execution> </executions> </plugin> </plugins> </build>
此插件是指将项目所依赖的jar,打包的时候打包到libs目录下,一遍到时候编写shell脚本读取依赖的jar
3:接下来就可以编写shell脚本了(get源码的方式有很多种,直接上传上去也行。本文将使用Git在服务器端直接拉取源码,编译打包,启动)
[code]#打包完后的jar名称,替换成你自己项目的名称,该名称可以在maven项目的pom中配置 proc="start-application-1.0-SNAPSHOT.jar" #启动类的包名+类名 start_main_class="com.StartApplication" #项目源码的目录地址(初始可能需要自己从Git拉下来) SOURCE_HOME="/opt/mxb-test/source/fc-dev-power" #jdk加入到环境变量,jdk地址不同替换下面地址 JAVA_HOME="/usr/local/jdk1.8.0_161" PATH="$JAVA_HOME/bin:$PATH" CLASSPATH="$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH" export JAVA_HOME export PATH export CLASSPATH #JVM启动参数,关于JVM调优这里不介绍,感兴趣的可以自行百度 JVM调优 JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xss256k -Xmn768m -XX:SurvivorRatio=4 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:CMSInitiatingOccupancyFraction=90 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=0 -XX:CMSFullGCsBeforeCompaction=100 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true" #编写启动方法 start() { #到项目源码目录 cd $SOURCE_HOME #输出,准备获取最新代码 echo -n "git pull source ,please wait ....." #获取最新代码,此列只在目录所在分支pull #若想部署指定分支代码,可以在脚本调用参数中添加一个变量,用git checkout ${targer_branch} git pull #输出,最新代码已拉取完毕,准备打包 echo -n "mvn package source ,please wait ....." #maven打包命令,此处特别注意是 —U ,是指引用快照版本的jar(引用自己的项目)每次都更新最新的。 mvn clean package -U #打包成功后默认是在启动项目的target目录下。 cd target #输出,准备启动 echo -n $"Starting $proc:" #循环加载所需的jar,此处和2的pom配置有关 for name in ./libs/*.jar do APP_CLASS="$APP_CLASS:$name" done #启动脚本,--spring.profiles.active= 用于设置环境所使用的配置文件 JAVA_CMD="java $JAVA_OPTS -classpath $CLASSPATH:$APP_CLASS:$proc $start_main_class --spring.profiles.active=test" #后台运行 echo "$JAVA_CMD" #启动成功 echo $"start ------------------------------------------------------------------------------------------------------------------------------------------------" } #停止方法,此处不用更改,是通过启动类名jar等检索出Java线程,kill stop() { echo -n $"Stopping $proc:" aaa=$(ps aux | grep $proc |grep -v "grep" | awk '{print $2}') #aaa=$(ps -ef | grep "jar $proc" | awk '{print $2}') echo -n if [ -z $aaa ]; then echo "can't find this process" exit 1 else kill -9 $aaa fi } #设置脚本参数,启动的时候可以采用./脚本名称.sh start/stop/restart等参数 case "$1" in start) start ;; stop) stop ;; restart) stop start ;; esac
相关文章推荐
- linux(centos6.5)下部署springboot jar包用 *.sh 文件启动项目并将项目做成开机自启动服务
- SPRING BOOT jar linux部署脚本
- linux 下部署spring定时任务执行shell脚本,shell脚本执行spoon
- Spring boot项目部署脚本
- intellij idea2016 linux springboot项目下解决热部署问题
- spring boot项目打成jar包部署发布
- spring boot jar包 linux 部署
- Linux 启动停止SpringBoot jar 程序部署Shell 脚本
- springboot 多项目部署脚本实战以及解析
- 聚合 Spring boot + maven项目打包和linux部署
- 自动化脚本部署SpringBoot项目
- jenkins部署jar项目、springboot项目部署
- Linux下部署springboot项目的方法步骤
- linux部署springboot项目步骤
- linux docker下载tomcat和操作然后创建一个springboot项目jar包,能够在本机访问+tomcat端口访问不了问题处理
- Springboot项目打包部署通过Java-jar运行
- 分布式项目中 linux 服务器 部署jar 应用脚本 deploy.sh
- Springboot中引入本地jar包,并通过maven把项目成功打包成jar包部署
- linux下使用shell脚本自动化部署项目
- Linux编辑启动、停止与重启springboot jar包脚本实例