文章目录
JavaWeb项目部署到阿里云服务器1. 把项目打包成war包1.1 方法一1.2 方法二2. 配置服务器的jdk和tomcat环境3. JavaWeb项目部署JavaWeb项目部署到阿里云服务器
服务器:阿里云服务器 + Ubuntu 18.04 64位Linux操作系统
集成环境:IntelliJ IDEA .1
项目类型:SpringBoot 2.2.6
1. 把项目打包成war包
1.1 方法一
在使用IDEA创建SpringBoot项目时,选择打成war包:
1.2 方法二
默认maven项目如果是打成jar包,这时需要一些修改使得项目能够打成war包。
(1)修改pom.xml文件中下面的两处
修改pom.xml指定打包方式为 war 包:<packaging>war</packaging>。
修改SpringBoot内置的Tomcat依赖,指定scope为provided(provided说明对编译和测试有效,但在运行时无效),因为我们想把war包放在外置的Tomcat中运行。
<groupId>com.example</groupId><artifactId>test</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>test</name><description>Demo project for Spring Boot</description><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>
(2)编写一个SpringBootServletInitializer的子类,并调用configure方法
每个SpringBoot项目创建时都有一个application主类,我这里的名称为TestApplication。主类不需要修改。
这里还需要自己另外创建一个继承SpringBootServletInitializer的子类,我这里的名字为ServletInitializer。
package com.example.test;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;public class ServletInitializer extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(TestApplication.class);}}
(3)打包
注意:最好不要使用网上的一些【Project Structure -> Artifacts -> Web Application:Archive】方法打成war包。
我也尝试过,虽然成功了,但是发现war包里的pom.xml文件并没有相应的修改,也就是没有屏蔽springboot自身的tomcat,导致项目启动后它默认走springboot自己的tomcat,然后出现无法访问controller层等问题。
2. 配置服务器的jdk和tomcat环境
(1)服务器配置jdk和Tomcat可以查看这个配置:/smuzoey/p/11691412.html
(2)对于配置jdk和Tomcat需要从本地上传文件到服务器,可以看我的另一篇博客:/qq_42780289/article/details/105475069
(3)启动Tomcat默认访问的端口是8080,阿里云服务器默认没有配置,需要手动配置:
3. JavaWeb项目部署
(1)将上面的war包上传到服务器,不知道怎么上传的可以参考:/qq_42780289/article/details/105475069。
(2)将war包移动到Tomcat文件夹中webapps下面。
(3)如果Tomcat已经启动,那么war包会自动解压,我们就可以通过【服务器公网ip:8080/war包名称/访问的界面】来访问。如果Tomcat没有启动,需要进入Tomcat的bin目录,执行./startup.sh命令来启动Tomcat。