JAVA项目在服务器部署过程

13次阅读

一、本地打包上传服务器后部署

推荐第一种

springboot 项目中手动打包

打包依赖

 <parent> <artifactId>spring-boot-dependencies</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.3.RELEASE</version> </parent> 

他包含了

<!-- 将应用打包成一个可以执行的 jar 包 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 
 <!-- 将应用打包成一个可以执行的 jar 包 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 

jar 包位置

用 winSCP 上传到服务器 /data/tmp 文件里

 启动项目 : 把 jar 复制到程序目录 , 通过 java 命令行的方式启动 jar 包文件。因为本项目是使用了 spring boot 框架 , 所以 jar 中内置了 web 容器 , 不需要额外安装 tomcat 了。mkdir -p /data/app/pro-stuleave-boot cd /data/tmp mv /data/tmp/pro-stuleave-boot-1.0.jar /data/app/pro-stuleave-boot/ cd /data/app/pro-stuleave-boot nohup java -jar pro-stuleave-boot-1.0.jar & #如果出现 :nohup: ignoring input and redirecting stderr to stdout #意思是 : 忽略输入并将输出附加到 `nohup.out’他在当前目录创建了一个 nohup.out 文件记录日志 直接回车 然后输 tail -300f nohup.out 程序就正常启动了 也可以不执行 nohup java -jar pro-stuleave-boot-1.0.jar & 执行这条命令 nohup java -jar kaoqin20210327.jar >nohup.out 2>&1 & 
 或者自定义日志文件位置 ------------------------------------------- #这种方法会把日志文件输入到你指定的文件中 , 没有则会自动创建。进程会在后台运行。nohup java -jar pro-stuleave-boot-1.0.jar >temp.txt & #如果出现 :nohup: ignoring input and redirecting stderr to stdout #意思是 : 忽略输入并将输出附加到 `nohup.out’直接回车 然后输 #查看日志 , 验证项目是否成功运行。tail -300f temp.txt 程序就正常启动了 启动成功后按 Ctrl+c 退出项目 , 项目也不会停止运行 Linux 运行 jar 包与停止命令 a、执行 jar 包的命令和在 windows 操作系统上是一样的 , 都是 java -jar xxxx.jar。b、后台运行,nohup 意思是不挂断运行命令, 当账户退出或终端关闭时, 程序仍然运行 #当用 nohup 命令执行作业时 , 缺省情况下该作业的所有输出被重定向到 nohup.out 的文件中 , 除非另外指定了输出文件。#nohup java -jar pro-stuleave-boot-1.0.jar c、如果想杀掉运行中的 jar 程序 , 查看进程命令为 : ps aux|grep pro-stuleave-boot-1.0.jar 将会看到此 jar 的进程信息 root 22337 0.5 18.1 3123956 347272 pts/1 Sl 16:48 0:11 java -jar pro-stuleave-boot-1.0.jar root 22521 0.0 0.1 221592 2408 pts/2 S+ 17:26 0:00 grep --color=auto pro-stuleave-boot-1.0.jar 其中 22337 则为此 jar 的 pid, 杀掉命令为 kill -9 22337 启动项目重复上述操作 

二、服务器使用 git 命令下拉项目并打包后部署过程

注意 :maven 中仍需要向上面一样的配置

1. 从 git 仓库 clone 下来最新代码。

# 创建 git 仓库目录 ,clone 项目源代码 mkdir -p /data/gitee cd /data/gitee #git@gitee.com:y_project/RuoYi.git 为自己项目的 ssh git clone git@gitee.com:y_project/RuoYi.git 

2. 在本地使用可视化数据库开发工具 Navicat 链接服务器 MySQL。创建数据库并执行所需数据脚本.sql

3. 修改项目中的配置文件 , 配置文件 application.yml

# 进入自己项目的 resources 文件夹下 cd /data/gitee/ ..... /src/main/resources/ #修改 application.yml 的项目启动端口号 , 该端口号必须在服务器安全组有配置 , 且不被使用 vim application.yaml #修改 application.yaml 的数据源 (MySQL、Redis 等和自己在 application 配置的一些数据) vim application.yml 
server: port: 端口号 spring: application: name: 项目名 aop: auto: true proxy-target-class: true datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql:// 服务器 ip:3306/ 数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: password: druid: max-active: 300 filters: stat initialSize: 2 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: false maxPoolPreparedStatementPerConnectionSize: 200 redis: # Redis 数据库索引 ( 默认为 0 ) database: 0 # Redis 服务器地址 host: # Redis 服务器连接端口 port: 6379 # Redis 服务器连接密码 password: lettuce: pool: # 连接池最大连接数 ( 使用负值表示没有限制 ) 默认 8 # 这里要参考 Redis 服务器的最大连接配置 maxActive: 100 # 连接池最大阻塞等待时间 ( 使用负值表示没有限制 ) 默认 -1 maxWait: 3000 # 连接池中的最大空闲连接 默认 8 maxIdle: 1 # 连接池中的最小空闲连接 默认 0 minIdle: 1 mybatis: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: run.leave.mapper management: endpoints: web: exposure: include: '*' 

4. 修改好项目的配置文件之后 , 把入口项目进行打包。通过 mvn 打包成一个可执行的 jar 包。

cd /data/gitee/RuoYi-Vue/ mvn clean install -pl com.ruoyi:ruoyi-admin -am 

5. 启动项目 : 把 jar 复制到程序目录 , 通过 java 命令行的方式启动 jar 包文件。因为本项目是使用了 spring boot 框架 , 所以 jar 中内置了 web 容器 , 不需要额外安装 tomcat 了。

mkdir -p /data/app/ruoyi-vue cp /data/gitee/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar /data/app/ruoyi-vue/ruoyi-admin.jar cd /data/app/ruoyi-vue/ nohup java -jar ruoyi-admin.jar & #nohup 和 & 用来表示本命令需要在后台执行 , 这样退出命令行程序后 ,java 程序也不会停止。

出现这种按回车或者 Ctrl+c

# 查看日志 , 验证项目是否成功运行。tail -300f nohub.out 

就正常启动项目了

启动成功后按 Ctrl+c 退出项目 , 项目也不会停止运行

 如果想杀掉运行中的 jar 程序 , 查看进程命令为 : ps aux|grep pro-stuleave-boot-1.0.jar 将会看到此 jar 的进程信息 root 22337 0.5 18.1 3123956 347272 pts/1 Sl 16:48 0:11 java -jar pro-stuleave-boot-1.0.jar root 22521 0.0 0.1 221592 2408 pts/2 S+ 17:26 0:00 grep --color=auto pro-stuleave-boot-1.0.jar 其中 22337 则为此 jar 的 pid, 杀掉命令为 kill -9 22337 启动项目重复上述操作 

原文链接:https://blog.csdn.net/munangs/article/details/124345341

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-02发表,共计4248字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。