JAVA项目在服务器部署过程

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

推荐第一种

springboot项目中手动打包

打包依赖
LcebLj.png

	<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>

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

	<!--将应用打包成一个可以执行的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>

打包

LcmD7n.png

jar包位置

LcmoA1.png

LcnP9f.png

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

LcnTbj.png

启动项目:把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
#[email protected]:y_project/RuoYi.git为自己项目的ssh
git clone [email protected]: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程序也不会停止。

L2nyVJ.png

出现这种按回车或者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://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

猜你喜欢

转载自blog.csdn.net/munangs/article/details/124345341