当前位置: 首页 > 编程笔记 >

spring boot 部署为jar包的方法示例

宋建柏
2023-03-14
本文向大家介绍spring boot 部署为jar包的方法示例,包括了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 原问题:https://github.com/spring-projects/spring-boot/issues/6927

部署为可运行的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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍springboot工程jar包部署到云服务器的方法,包括了springboot工程jar包部署到云服务器的方法的使用技巧和注意事项,需要的朋友参考一下 首先,springboot在这里不多做介绍了,关于怎么打成jar包,我相信凡是用过的同学都知道吧! 然后就是将jar包上传到云服务器了,这个有好些工具的,博主在这里也不多做说明了! 咱们还是直奔主题吧。。。。 运行命令:java -

  • 本文向大家介绍maven+springboot打成jar包的方法,包括了maven+springboot打成jar包的方法的使用技巧和注意事项,需要的朋友参考一下 maven的命令: 1.mvn clean package -DskipTests:在项目目录下运行此命令,在target目录下生成jar包或war包。 2.mvn clean:清理项目生产的临时文件,一般是模块下的target目录 3

  • 本文向大家介绍springboot实现热部署操作方法,包括了springboot实现热部署操作方法的使用技巧和注意事项,需要的朋友参考一下 1.在 Spring Boot 开发环境下禁用模板缓存 2.引入依赖 3.Intellij IEDA 和 Eclipse 不同,Intellij IDEA 必须做一些小调整 在 Eclipse 中,修改文件后要手动进行保存,它就会自动编译,就触发热部署现象,而

  • 我试图为应用程序创建一个可执行的.jar文件,但是当我运行“java-jar myapp.jar”时,我得到了错误: 错误:找不到或加载main类com.vaadin.app.MainView 我已经在pom.xml中添加了mainClass参数,MANIFEST.MF显示了以下内容: Main-Class:com.vaadin.app.MainView 在我的类中找不到方法的原因吗?

  • 我在教程两个模块的帮助下创建了一个springboot mutimodule项目--一个后端(java类),另一个forntend(angular 5应用程序)我在后端模块中包含了前端模块的依赖项。我正在创建一个jar使用maven资源插件。我也在将静态资源复制到pom.xml中构建目录的静态文件夹中。我还有一个@Controller返回“index”。当我运行jar时,我希望看到index.ht