linux小白成长之路9————打包部署SpringBoot项目
2018-03-30 17:08
1301 查看
【内容指引】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=dev3.application-dev.properties配置开发配置保持默认即可,无特殊说明。
4.application-prod.properties配置
需要注意的配置如下:JPA配置与前面Docker中运行的Mysql容器一致,这里设置数据库名为“pscms”,用户名为“root”,密码为“123456”#JPAspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/pscms?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=123456spring.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小白成长之路10————SpringBoot项目部署进阶
- linux小白成长之路10————SpringBoot项目部署进阶
- 聚合 Spring boot + maven项目打包和linux部署
- Spring Boot项目的打包部署
- springboot项目打包部署时把静态资源打包到jar中、或修改静态资源根目录
- springboot项目的打包部署(gralde和maven)
- SpringBoot项目打包部署外部JavaEE容器
- SpringBoot项目的打包部署
- spring boot项目打包部署过程
- Springboot项目打包成war包,并在tomcat下部署
- linux下部署springboot项目用到的一些命令
- Spring-Boot项目打包及部署
- 通过eclipse把spring boot项目打包成war包并部署到tomcat服务器上的步骤
- linux上部署spring-boot项目
- [置顶] Eclipse新建Spring-boot项目,打包部署并输出HelloWord
- Spring boot 项目Linux部署
- springboot项目的打包部署(gralde和maven)
- 如何将Spring Boot项目打包部署到外部Tomcat
- Spring Boot项目部署(Linux、maven)
- Spring Boot项目的打包和部署