spring boot 部署为jar包的方法示例
前言
一直在ide中敲代码,使用命令行 mvn spring-boot:run 或者 gradlew bootrun 来运行spring boot项目。想来放到prod上面也应该很简单。然而今天试了下,各种问题。最大错误是1.4的bug:
error creating bean with name 'entitymanagerfactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/hibernatejpaautoconfiguration.class]: invocation of init method failed; nested exception is javax.persistence.persistenceexception: unable to resolve persistence unit root url
这个错误使我一直以为自己的代码有问题。找了半天没找到,最后想既然命令行可以运行ok,那么一个fat jar失败肯定不对了。于是上github去问,以为石沉大海准备睡觉的。想不到的是spring boot的成员秒回,找到问题是1.4版本中hibernate自动配置的问题,想我根本不需要hibernate,删除就可以了。
github 原问题:
部署为可运行的jar
spring boot已经尽可能把需要配置的东西自动化了,我还傻傻的像以前springmvc那样补充各种配置,比如加一个数据源druid。然而大可不必,使用默认的就好,等需求不满足的时候,在进行修改就可以了。
同样的,既然内置的tomat可以很好的运行,为啥非要自己手动部署war包?
在gradle build或者maven package之后,会得到一个jar,这个jar是spring boot修改过的jar,可以直接运行。
运行方式:
java -jar xxxx.jar
看到比较好的linux脚本:
start.sh
#!/bin/sh rm -f tpid nohup java -jar xx.jar --spring.profiles.active=dev > /dev/null 2>&1 & echo $! > tpid echo start success!
stop.sh
#!/bin/sh app_name=myapp tpid=`ps -ef|grep $app_name|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'stop process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef|grep $app_name|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'kill process!' kill -9 $tpid else echo 'stop success!' fi
check.sh
#!/bin/sh app_name=myapp tpid=`ps -ef|grep $app_name|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'app is running.' else echo 'app is not running.' fi
kill.sh
#!/bin/sh app_name=myapp tpid=`ps -ef|grep $app_name|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'kill process!' kill -9 $tpid fi
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: ASP.NET简单实现注销功能
推荐阅读
-
spring boot 部署为jar包的方法示例
-
spring boot 打包jar jar没有主目录清单问题的完美解决方法
-
spring boot打jar包发布的方法
-
Spring boot实现应用打包部署的示例
-
spring boot中内嵌redis的使用方法示例
-
SpringBoot spring-boot-maven-plugin 打包为可执行Jar方法。(已验证)
-
使用Docker部署Spring Boot的方法示例
-
使用docker部署spring boot并接入skywalking的方法
-
dubbo+springboot分模块项目发布为jar包的方法
-
Spring Boot创建非可执行jar包的实例教程