JAVA项目在服务器部署过程

待我称王封你为后i 2023-09-29 11:27 117阅读 0赞

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

推荐第一种

springboot项目中手动打包

打包依赖
LcebLj.png

  1. <parent>
  2. <artifactId>spring-boot-dependencies</artifactId>
  3. <groupId>org.springframework.boot</groupId>
  4. <version>2.3.3.RELEASE</version>
  5. </parent>

他包含了

  1. <!--将应用打包成一个可以执行的jar包-->
  2. <build>
  3. <plugins>
  4. <plugin>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-maven-plugin</artifactId>
  7. </plugin>
  8. </plugins>
  9. </build>

但建议还是自己写一个 build 标签
build详细配置参考文章https://www.cnblogs.com/whx7762/p/7911890.html

  1. <!--将应用打包成一个可以执行的jar包-->
  2. <build>
  3. <plugins>
  4. <plugin>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-maven-plugin</artifactId>
  7. <executions>
  8. <execution>
  9. <goals>
  10. <goal>repackage</goal>
  11. </goals>
  12. </execution>
  13. </executions>
  14. </plugin>
  15. </plugins>
  16. </build>

打包

LcmD7n.png

jar包位置

LcmoA1.png

LcnP9f.png

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

LcnTbj.png

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

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

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

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

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

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

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

  1. #进入自己项目的resources文件夹下
  2. cd /data/gitee/ ..... /src/main/resources/
  3. #修改application.yml的项目启动端口号,该端口号必须在服务器安全组有配置,且不被使用
  4. vim application.yaml
  5. #修改application.yaml的数据源(MySQL、Redis等和自己在application配置的一些数据)
  6. vim application.yml
  7. server:
  8. port: 端口号
  9. spring:
  10. application:
  11. name: 项目名
  12. aop:
  13. auto: true
  14. proxy-target-class: true
  15. datasource:
  16. type: com.alibaba.druid.pool.DruidDataSource
  17. driver-class-name: com.mysql.cj.jdbc.Driver
  18. url: jdbc:mysql://服务器ip:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
  19. username:
  20. password:
  21. druid:
  22. max-active: 300
  23. filters: stat
  24. initialSize: 2
  25. maxWait: 60000
  26. timeBetweenEvictionRunsMillis: 60000
  27. minEvictableIdleTimeMillis: 300000
  28. validationQuery: SELECT 1
  29. testWhileIdle: true
  30. testOnBorrow: false
  31. testOnReturn: false
  32. poolPreparedStatements: false
  33. maxPoolPreparedStatementPerConnectionSize: 200
  34. redis:
  35. # Redis数据库索引(默认为0)
  36. database: 0
  37. # Redis服务器地址
  38. host:
  39. # Redis服务器连接端口
  40. port: 6379
  41. # Redis服务器连接密码
  42. password:
  43. lettuce:
  44. pool:
  45. # 连接池最大连接数(使用负值表示没有限制) 默认 8
  46. # 这里要参考Redis服务器的最大连接配置
  47. maxActive: 100
  48. # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
  49. maxWait: 3000
  50. # 连接池中的最大空闲连接 默认 8
  51. maxIdle: 1
  52. # 连接池中的最小空闲连接 默认 0
  53. minIdle: 1
  54. mybatis:
  55. mapper-locations: classpath:mapper/**/*.xml
  56. type-aliases-package: run.leave.mapper
  57. management:
  58. endpoints:
  59. web:
  60. exposure:
  61. include: '*'

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

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

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

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

L2nyVJ.png

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

输入

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

就正常启动项目了

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

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

笔记资源
链接:https://pan.baidu.com/s/1MQQGnCJr3XPhMviS96u0mQ
提取码:3wls

参考文档
https://mp.weixin.qq.com/s/FqfGbYRvhiTU7q0aB1d2EA

https://mp.weixin.qq.com/s?__biz=Mzg2ODU0NTA2Mw==&mid=2247484347&idx=1&sn=087b67ecbd0896146f4787dfe55d52be&source=41#wechat_redirect

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读

    相关 项目部署服务器

    1、购买云服务器 腾讯云服务器购买地址 :腾讯云购买地址 我买的是1核2G的轻量级应用服务器,对于一个个人博客。该服务器的性能绰绰有余了。同时我这个也是新人专享的。