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项目 打包发布的方式。