【Linux】之部署 SpringBoot 项目

Jar 包部署

Maven 打包项目:
[root@centos] maven package

把打出来的 jar 包放到 Linux 服务器下,直接使用 Java 启动:

[root@centos] nohup java -jar yourProject.jar &

其中 & 表示后台运行程序:

  • 结果会输出到终端
  • 使用 Ctrl + C 发送 SIGINT 信号,程序免疫
  • 关闭session发送SIGHUP信号,程序关闭

使用 nohup 运行程序:

  • 结果默认会输出到 nohup.out
  • 使用Ctrl + C发送SIGINT信号,程序关闭
  • 关闭session发送SIGHUP信号,程序免疫

由于 nohup 输出的文件会越来越大,很占内存,我们可以选择重定向到 /dev/null 中,放弃 nohup.out 的信息输出:

[root@centos] nohup java -jar yourProject.jar >/dev/null 2>erro.log 2>&1  & 

这里 >/dev/null 表示把所有信息都扔掉,2>err.log 表示把错误输出到 erro.log 文件中(0表示标准输入,1表示标准输出,2表示错误输出)

如果什么也不输出的话直接使用:

[root@centos] nohup java -jar yourProject.jar >/dev/null 2>&1  & 
查看后台进程

列出所有后台执行的作业,并且每个作业前面都有个编号:

[root@centos] jobs

将某个作业调回前台控制,只需要 fg + 编号 即可

[root@centos] fg 2

查看端口占用的线程 pid

[root@centos] netstat -nlp | grep :8080
# 或者
[root@centos] ps -aux | grep java

杀死进程

# 正常杀死
[root@centos] kill -15 pid号
# 强制杀死
[root@centos] kill -9 pid号

war 包部署

Spring Boot 由于默认内嵌 Tomcat 容器,所以打出来的 jar 包即可直接运⾏,但是我们
有时候希望将其部署于外置的 Tomcat 服务器中,这时候就要打 war 包了。

打 war 包之前需要做⼏个代码上的配置:

1、修改 pom.xml 中的打包⽅式

将:

<packaging>jar</packaging>

修改为:

<packaging>war</packaging>
2、剔除内嵌的Tomcat

修改 pom.xml ⽂件,在原先的配置:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

下面加入如下配置:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<scope>provided</scope>
</dependency>

provided 表示该包只在编译和测试中使⽤,在发布时去除。

3、修改项⽬启动类

在 Spring Boot 中我们平常都⽤ main ⽅法启动的⽅式,都有⼀个 SpringBootApplication 的启动
类,例如 xxxApplication.java 的启动主类⽂件.

⽽我们现在需要类似于 web.xml 的配置⽅式来启动 Spring 应⽤,为此,我们在 Application 类的同
级⽬录下再添加⼀个 SpringBootStartApplication 类:

SpringBootStartApplication.java

代码如下:

public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 在这⾥要指向原先⽤main⽅法执⾏的 xxxApplication 启动类
        return builder.sources(xxxApplication.class);
    }
}
4、打包部署:
[root@centos] mvn clean
[root@centos] mvn package

等待构建打成 war 包,打包结果仍然位于 target 目录下,然后直接部署到 Tomcat 服务器中即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux环境中部署SpringBoot项目,可以按照以下步骤进行: 1. 安装Java环境 在Linux环境中安装Java环境,可以使用以下命令: ``` sudo apt-get update sudo apt-get install default-jre sudo apt-get install default-jdk ``` 2. 安装Maven 在Linux环境中安装Maven,可以使用以下命令: ``` sudo apt-get update sudo apt-get install maven ``` 3. 下载项目代码 从代码仓库或者其他途径下载SpringBoot项目的代码,并解压到指定目录。 4. 构建项目 进入项目目录,使用Maven构建项目: ``` mvn clean package ``` 该命令会编译代码、运行单元测试、打包应用程序,并将生成的jar包保存在target目录下。 5. 配置应用程序 在Linux环境中,可以使用systemd来管理应用程序。创建一个新的systemd服务文件: ``` sudo nano /etc/systemd/system/myapp.service ``` 在该文件中添加以下内容: ``` [Unit] Description=My Spring Boot App After=syslog.target [Service] User=<your username> ExecStart=/usr/bin/java -jar /path/to/jar/myapp.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target ``` 其中,\<your username\>应替换为当前用户的用户名,/path/to/jar/myapp.jar应替换为jar包所在的路径。 6. 启动应用程序 使用以下命令启动应用程序: ``` sudo systemctl start myapp ``` 该命令会启动myapp.service服务,并启动应用程序。 7. 验证应用程序 使用以下命令检查myapp.service服务的状态: ``` sudo systemctl status myapp ``` 如果服务已经启动,应该会看到类似以下的输出: ``` ● myapp.service - My Spring Boot App Loaded: loaded (/etc/systemd/system/myapp.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-05-26 15:43:56 CST; 1h 25min ago Main PID: 12345 (java) Tasks: 21 (limit: 4915) CGroup: /system.slice/myapp.service └─12345 /usr/bin/java -jar /path/to/jar/myapp.jar ``` 在浏览器中访问应用程序的URL,验证应用程序是否可以正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值