SpringBoot-项目部署

发布时间:2024年01月15日

SpringBoot项目部署可以通过将项目打成可执行的jar包或war包来实现,也可以使用容器化技术如Docker将项目部署到云平台中。在部署时需要注意配置文件的位置和启动参数的设置,同时确保目标环境中的Java版本与项目所需的Java版本一致。部署完成后,可以通过访问项目的URL或监控端点来进行访问和管理。

这里主要讲Docker外两种手动打包的部署方式:

一、jar包部署(内置tomcat)

在实现jar包部署时,我们通常会选择使用内置的Tomcat容器。这种方式使得我们可以将整个应用打包成一个可执行的jar文件,方便部署和运行。

1、项目打包成 jar包

首先,我们通过Eclipse的Maven插件,双击生命周期中的package操作,系统将自动将项目打包成一个可执行的jar包。默认情况下,该jar包会存放在项目路径下的target目录。

默认是项目路径下的target目录。


2、拷贝 jar包 到服务器发布目录

将生成的jar包拷贝到服务器上的发布目录,确保在目标服务器上有足够的权限,并且目录结构符合预期。


3、运行java命令发布 jar包

使用以下命令在服务器上运行jar包,其中"xxxxx"表示jar包的物理路径:

# xxxxx为jar包的物理路径
java -jar xxxxx.jar

这会启动嵌入式的Tomcat容器,并在默认的端口(通常是8080)上启动Web应用。成功发布后,可以通过访问项目编写时设置的服务端口(例如8088),来确认项目已经成功运行。?

?


4、测试访问?

发布成功后,我们访问项目编写时设置的服务端口8088,可以看到项目成功运行了。


5、停止jar包发布的方法

在某些情况下,我们可能需要停止已经发布的jar包。有两种常见的方法:

  • ① 直接关闭cmd窗口: 如果是通过命令行启动的,关闭命令行窗口将终止正在运行的jar包。

  • ② taskkill任务: 如果第一种方法不起作用,或者端口仍然被占用,我们可以使用taskkill命令终止进程。例如,如果项目运行在 8088端口,可以执行以下命令:

# 查看所有在运行的jar包的PID
jps 
# 根据PID强制终止任务
taskkill /pid pid号 -f  -t 

上述命令通过查找占用8088端口的进程ID(PID),然后使用taskkill命令强制终止该进程。

通过这些步骤,我们可以实现通过jar包部署应用,使得应用的发布和管理变得更加简便。这种方式适用于轻量级的应用,特别是那些不需要外部Web服务器的情况。?


二、war包部署(依赖外置tomcat)

当我们选择将 Java Web 项目以 war包 形式部署,并依赖外置 Tomcat 时,我们需要进行以下步骤:?

1、修改项目启动类

确保项目中存在一个适当的启动类。这是应用程序的入口点,通常是一个类,包含有main方法或是被标注为Spring Boot应用的启动类。

package com;
 
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 
@EnableAdminServer
@SpringBootApplication
 
//将原有启动类继承SpringBootServletInitializer 
public class SbaApplication extends SpringBootServletInitializer {
 
    public static void main(String[] args) {
        SpringApplication.run(SbaApplication.class, args);
    }
 
    //这一段重写方法也是新加代码
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }
}

2、pom.xml 引入 war包 依赖

在项目的 pom.xml 文件中引入 war包 依赖。这通常涉及到添加 javax.servlet-api 等相关依赖,以确保项目能够正确在外置 Tomcat 中运行。引入完依赖后,务必刷新 Maven 以更新 jar包 和依赖关系。?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
 </plugin>

引入完记得刷新maven以更新jar包和依赖关系。


3、packaging 设置为 war

在 pom.xml 文件中,将 packaging 设置为 war,示例如下:

<packaging>war</packaging>


4、导出 war包

通过 Maven 插件,双击右侧的 Maven 菜单里的 package,以导出 war包。生成的 war包 通常位于项目的 target 目录下。


5、服务器部署 war包

将生成的 war包复制到外置 Tomcat 的 webapps目录下。一旦 war包被放置,Tomcat会自动解压缩并在 webapps目录下生成对应的应用文件夹。

将 war包 放到服务器 tomcat 的目录下。

war包 放到 tomcat 的 webapps目录 下之后,如果运行 tomcat,war包会自动生成解析后的文件夹,等 tomcat 关闭后,我们可以把原先的 war包 删除,只保留最新的解析后的文件夹。
注意:war包 不能在 tomcat 运行时删除,否则自动会删除解压后的工程。

接着我们访问 tomcat 来测试是否访问成功,比如我的 tomcat 是 70端口,访问 localhost(或公网ip):70/ProjectSchedule,可以看到项目正常运行。


6、测试访问

启动Tomcat,并访问相应的URL,检查项目是否正常运行。例如,如果 Tomcat 监听 xxx 端口,可以通过访问 localhost:xxx 或公网IP来验证部署是否成功。

通过这些步骤,我们成功地将Java Web应用以war包形式部署到外置Tomcat中。这种方式适用于需要与其他应用共享Tomcat容器的情况,同时也提供了更大的灵活性和可维护性。以上所述是常用的两种Java项目打包发布方式,具体选择取决于项目的需求和部署环境。

以上是常用的两种 Java项目 打包发布的方式。

文章来源:https://blog.csdn.net/weixin_41793160/article/details/135586162
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。