linux小白成长之路9————打包部署SpringBoot项目
【内容指引】
SpringBoot项目介绍;
打包SpringBoot项目:
1.pom.xml;
2.application.properties配置;
3.application-dev.properties配置;
4.application-prod.properties配置;
5.data.sql;
6.打包设置。
将jar包部署到linux服务器:
1.将jar包从Mac上传到远程linux服务器;
2.在Mysql中创建数据库实例;
3.以生产配置的方式运行jar包。
相关技巧
1.删除数据库;
2.查看进程;
3.根据端口查进程;
4.杀死指定进程 。
一、SpringBoot项目介绍
本例用于演示打包部署的java项目有如下特点:
1.采用jar包(而不是war包的方式)的方式打包;
2.双配置:开发环境采用内置的内存数据库h2,生产环境采用Mysql数据库。前两篇已经在服务器中用Docker的方式安装了Mysql。
二、打包SpringBoot项目
1.pom.xml
需要特别说明的配置如下:
打包方式
<packaging>jar</packaging>
数据库相关依赖
依赖JPA、h2数据库、Mysql数据库
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
以上配置都在“云开发”平台生成项目初始化代码时设定好了,无须额外修改。
2.application.properties配置
默认启用开发配置"dev"。打包时改为“prod”,启用生产配置。
#Profile设置
spring.profiles.active=dev
3.application-dev.properties配置
开发配置保持默认即可,无特殊说明。
4.application-prod.properties配置
需要注意的配置如下:
JPA配置
与前面Docker中运行的Mysql容器一致,这里设置数据库名为“pscms”,用户名为“root”,密码为“123456”
#JPA
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/pscms?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
端口
Tomcat端口(server.port)以及应用监控端口(management.port)不要与目标服务器上已用的端口号冲突了(必要的情况下,还需要在目标服务器的防火墙中允许这两个端口).
其它配置不用修改,保持“云开发”平台初始化的生产配置即可。
5.data.sql
这里是为Spring Security初始化两个用户的sql脚本,注意,表名一律用小写字母,否则可能发布时会报找不到表的异常。
6.打包设置
在"IntelliJ IDEA"的顶部右边选择“Edit Configurations”:


添加一个Maven配置:

取一个名称,如“cms”,然后在Command line中输入“clean package”,如下图所示:

如下图,点击“运行”按钮,执行打包:
注意
由于启用了生产环境的配置,打包前需要Mysql数据库实例“pscms”是可以正常访问的,否则会导致编译失败。

会生成一个名为"cms-0.0.1.SNAPSHOT.jar"的jar包,其中“cms”是本示范项目的项目名:

三、将jar包部署到linux服务器
1.将jar包从Mac上传到远程linux服务器
可以先将本项目target目录中的jar包重命名为"cms.jar":

右键拷贝jar包本地地址:

本例不上传到远程服务器,而是CentOS虚拟机。
查询指导虚拟机的ip是“192.168.10.121”,用户名是"parallels",桌面地址是“/home/parallels/Desktop”,在Mac终端中用scp拷贝jar包到虚拟机中(从虚拟机的linux终端上传jar包到远程linux服务器的方法相同)。
指令语法:scp -r 本地jar包路径 远程服务器用户名@服务器IP:远程存放jar包的路径
指令:
scp -r /Users/mac.manon/workspace/JavaProjects/mobi_weiapp_cms/target/cms.jar parallels@192.168.10.121:/home/parallels/Desktop

现在虚拟机桌面就有了cms.jar:

2.在Mysql中创建数据库实例:
在SpringBoot的生产配置中,我们需要连接的Mysql数据库实例为“pscms”,这里,我们在虚拟机中,登录docker创建数据库,否则运行jar报无法连接的异常。步骤如下:
登录容器:
docker exec -it first-mysql bash
登录Mysql:
mysql -u root -p
输入密码:
创建数据库:
CREATE DATABASE `pscms` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建成功后退出mysql(quit)、退出容器(exit)。
3.以生产配置的方式运行jar包
指令:
java -jar /home/parallels/Desktop/cms.jar --spring.profiles.active=prod


现在可以在CentOS本地火狐浏览器中用http://localhost:8888访问了,如果在Mac中访问则将localhost换为虚拟机的ip(如无法访问,则可能是防火墙的原因)。
四、相关技巧
1.删除数据库
指令:
DROP DATABASE `pscms`;
2.查看进程
如查看java的相关的进程
指令:
ps -ef|grep java
如下图,我们看到cms.jar的进程为30894

3.根据端口查进程
如果用方法2查询没找到cms.jar的进程时,我们可以根据该程序占用的端口“8888”查询。
指令:
netstat -lntp 8888


4.杀死指定进程
指令:
kill -9 进程号

杀死进程后,发布的SpringBoot项目就无法访问了。
linux小白成长之路9————打包部署SpringBoot项目的更多相关文章
- linux小白成长之路12————Docker部署Nginx
[内容指引] Docker安装Nginx: 简单启动: 准备配置文件: 一.Docker安装Nginx 指令:docker pull nginx 二.简单启动 指令:docker run --name ...
- linux小白成长之路10————SpringBoot项目部署进阶
[内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...
- linux小白成长之路1————通过Parallels安装CentOS虚拟机
以下是通过Mac版Parallels安装CentOS虚拟机的教程: 1.在Parallels向导中选择"下载CentOS",点击"继续":  2.点击&quo ...
- linux小白成长之路2————yum安装火狐浏览器
1.使用终端: CentOS左上角:应用程序>收藏>终端  2.使用root权限安装软件: 输入:sudo -i 输入密码(上篇安装linux虚拟机时设定的登录密码,也是超级管理员密码) ...
- linux小白成长之路4————centos7配置自动更新安装安全补丁
[内容指引] 安装yum-cron; 修改配置:nano: 手工启动服务: 将服务设置为开机自动启动. 为保证linux系统的安全性以及稳定性,可以使用yum-cron服务自动更新: 1.安装yum- ...
- linux小白成长之路7————Docker安装mysql
[内容指引] 从Docker检索mysql镜像: Mysql Docker镜像下载: 查看本地镜像列表: 设置Mysql的Docker镜像开机自动运行: 常用Docker指令及参数: 1.从Docke ...
- linux小白成长之路3————更新yum源
[内容指引] 进入目录:cd 查看目录下的内容:ls 重命名备份:mv 从网络下载:wget yum更新:yum update 第一次运行yum安装软件前,建议更新yum. 1.进入yum源目录 命令 ...
- linux小白成长之路6————安装Java+Apache(httpd)+Tomcat
[内容指引] 安装Java环境: 查看JDK版本: 安装Apache(httpd); 安装Tomcat: 设置服务开机启动. 1.安装Java环境 指令: yum intall java-1.8.0* ...
- linux小白成长之路8————访问Docker中的mysql
[内容指引] 本篇实战演示如何操作Docker中的mysql数据库,包含以下五个知识点: 登录容器: 登录mysql: 运行SQL指令创建数据库: 退出mysql: 退出容器: 1.登录容器 我们在上 ...
随机推荐
- select选中获取索引三种写法
$('#someId').prop('selectedIndex'); $('option:selected', '#someId').index(); $('#someId option').ind ...
- jquery 动态获得主机地址
var curWwwPath=window.document.location.href; alert("curWwwPath"+curWwwPath); curWwwPath ...
- 用winscp从本地上传文件到服务器上出现复制文件到远端时错误。
用winscp从本地上传文件到服务器上出现复制文件到远端时错误. 错误码:4 服务器返回的错误消息:write failed 报错如下图所示: 分析过程: 1.刚开始以为是权限不够,后面上网查了一下是 ...
- cisco linksys ea3500 刷机 openwrt
家中router改造成千兆华为A1,淘汰下来的cisco linksys ea3500 终于可以去刷机 openwrt,尽情折腾啦! 分享步骤: 准备文件 https://archive.openw ...
- JAVA流式布局管理器--JAVA基础
JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...
- Hive 编程之DDL、DML、UDF、Select总结
Hive的基本理论与安装可参看作者上一篇博文<Apache Hive 基本理论与安装指南>. 一.Hive命令行 所有的hive命令都可以通过hive命令行去执行,hive命令行中仍有许多 ...
- 谈谈使用Redis缓存时批量删除的几种实现
前言 在使用缓存的时候,我们时不时会遇到这样一个需求,根据缓存键的规则去批量删除这些数据,比较常见的就是按前缀去删除. 举个简单的例子,Redis中现在有几百个商品的数据,这些数据的key值是有一定规 ...
- canvas实现水波纹效果
本文将会从水波的基本原理开始,详细讲解在canvas中模拟水波扩散,分析并计算水波的能量分布,并通过振幅模拟水波对图像的折射效果,最后实现水波特效. 水波基本原理 首先复习一波高中物理知识. 波是指振 ...
- 第十一篇:Map/Reduce 工作机制分析 - 错误处理机制
前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...
- 洛谷P3402 【模板】可持久化并查集(可持久化线段树,线段树)
orz TPLY 巨佬,题解讲的挺好的. 这里重点梳理一下思路,做一个小小的补充吧. 写可持久化线段树,叶子节点维护每个位置的fa,利用每次只更新一个节点的特性,每次插入\(logN\)个节点,这一部 ...