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

博主不得转载,但还是看了怎么办: Spring Boot 部署与服务配置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LanceToBigData

IntelliJ IDEA 17和Maven构建javaWeb项目

前言   电脑又断电了,眼看着写好的东西就没有了,这是第二次犯这个错误了。很难受呀!还是回到正题吧,我们来使用IDEA和Maven构建一个JavaWeb项目  ...

2058
来自专栏编程坑太多

『中级篇』docker-Machine的本地使用(十)

https://docs.docker.com/machine/get-started-cloud/

1783
来自专栏菩提树下的杨过

maven学习(上)- 基本入门用法

一、下载及安装 1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1...

1868
来自专栏电光石火

tomcat配置ROOT目录和多站点

1 打开tomcat/conf/server.xml,在里面找到<Engine name="Catalina" defaultHost="localhost">...

2297
来自专栏咖啡的代码人生

IntelliJ IDEA 使用JSTL标签库(IDEA 加载 tld文件)

这两天在 IntelliJ IDEA 中 使用 C标签(JSTL)的时候发现引入进来有问题,不但没提示而且还有红色警告,所以经过一番谷歌的查找之后解决了这个问...

3764
来自专栏Java成长之路

Solr入门

本文主要介绍solr的基本用法。首先,我们从Apache官网下载solr的二进制分发包,然后解压缩文件。安装完成后,我们将启动solr服务器,并通过浏览器访问s...

451
来自专栏Laoqi's Linux运维专列

Linux和windows互传文件

搞Linux 也有一段时间了,自己总想着如何能让Linux和Windows不使用FTP或者Samba能够互相上传下载文件呢? 首先我们使用虚拟机来测试一下, 安...

2989
来自专栏电光石火

tomcat配置ROOT目录和多站点

多站点 1 打开tomcat/conf/server.xml,在里面找到 <Engine name="Catalina" defaultHost="lo...

21910
来自专栏holer

外网访问内网Tomcat

在holer官网上申请专属的holer access key或者使用开源社区上公开的access key信息。

291
来自专栏吴伟祥

搭建 Java Web 开发环境

JDK 是开发Java程序必须安装的软件,我们查看一下 yum 源里面的 JDK:

742

扫码关注云+社区