目录
windows服务器
Jar包方式
前后端未分离的单体SpringBoot项目,包含有多个子工程
1.用maven打包成jar
项目的根目录下打开命令行终端,运行以下命令以构建整个项目
mvn clean install
2.构建成功后,选取带有控制层的子工程的target目录下的jar文件,执行以下命令
java -jar myproject.jar
war包方式
前后端未分离的单体SpringBoot项目,非父子工程
1.修改打包方式
<packaging>war</packaging>
2.移除spring boot自带的嵌入式tomcat插件
<!--配置springboot框架的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除起步依赖中嵌入的tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3.若整合了servlet程序就任选以下三个依赖中的一个导入,没有整合就可以跳过
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
<!-- 引入springboot框架中内嵌的tomcat,去解析jsp依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
注意:< scope>provided< /scope>一定不能少,否则后面就会出问题,tomcat无法解析jsp
4.设置war包的名称
<build>
<finalName>projectName</finalName>
</build>
5.若springboot项目中若有jsp页面,必须手动指定最后编译的路径:(没有整合就可以跳过)
<resource>
<!--源文件位置-->
<directory>src/main/web</directory>
<!--指定编译到 META-INF/resources,该目录不能随便写-->
<targetPath>META-INF/resources</targetPath>
<!--指定要把哪些文件编译进去,**表示 webapp 目录及子目录,*.*表示所有文件-->
<includes>
<include>*.*</include>
</includes>
</resource>
<!-- 把src/main/resources 下的所有配置文件编译到 classes 下面去-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--src/main/java下的 mybatis 的 mapper.xml ,以及所有配置文件编译到 classes 下面去:需要才添加-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
原因:
(1) springboot项目默认推荐使用前端引擎是thymeleaf;
要使用springboot集成jsp,需要手动指定最后编译的路径;
而且springboot集成jsp编译jsp的路径是springboot规定好的位置META-INF/resources
(2) SpringBoot 要求 jsp 文件必须编译到指定的 META-INF/resources 目录下才能访问,否则访问不到。其它官方已经建议使用模版技术
6.修改启动类,并重写初始化方法
/**
* 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(Application.class);
}
}
7.打包部署
利用maven命令打包
然后将打的war包,复制粘贴到tomcat的webapps目录下(不用解压,启动tomcat自动解压)
8.测试结果,启动tomcat,再访问相关页面
在tomcat安装目录下的bin目录下面找到startup.bat命令,启动tomcat
tips:
部署到tomcat必须加上项目工程名,如:http://localhost:[端口号]/[打包项目名]/
注意:
springboot项目打war包,部署到tomcat中,之前在application.properties文件中设置的上下文根和端口号会失效,要以部署的tomcat为准
项目与tomcat里的端口号最好保持一致
————————————————
参考文章:https://blog.csdn.net/weixin_48033662/article/details/119678317
linux服务器
Jar包部署方式
前后端未分离的单体SpringBoot项目,非多个子工程
1.用maven打包成jar
项目的根目录下打开命令行终端,运行以下命令以构建整个项目
mvn clean install
2.构建成功后,选取带有控制层的子工程的target目录下的jar文件,执行以下命令
java -jar myproject.jar
参考文章:https://blog.csdn.net/wjie8023/article/details/120500797
部署相关
windows机器部署项目后怎么给外网机器用ip访问到
要让外网机器可以通过 IP 访问你的 Windows 机器上部署的项目,需要进行如下步骤:
1.打开 Windows 防火墙的端口:在控制面板中找到“Windows Defender 防火墙”,点击“高级设置”,然后选择“入站规则”。
2.添加新规则:点击“新建规则”,选择“端口”,然后按照项目需要的端口号创建一个新的规则,例如 8080 端口。需要注意的是,如果你的 Spring Boot 项目使用了 HTTPS,则还需要添加 443 端口。
3.允许访问:在“操作”菜单中选择“允许连接”。
完成以上步骤后,就可以通过你的 Windows 机器的公网 IP 加上项目端口号来访问你的 Spring Boot 项目了。例如,如果你的 Windows 机器的公网 IP 是 123.45.67.89,项目使用的端口是 8080,则可以在外网机器上通过浏览器访问 http://123.45.67.89:8080 来访问你的项目。
需要注意的是,通过公网 IP 访问项目会涉及网络安全问题,请确保你已经采取了必要的安全措施,比如使用 HTTPS、设置密码等。
参考文章:Windows怎么让防火墙开放端口:https://blog.csdn.net/qq754772661/article/details/110876957
怎么把java - jar ppp.jar 做成bat可执行文件
1.新建txt文件,在新文件中输入以下内容:
@echo off
java -jar ppp.jar
这个简单的批处理脚本使用 @echo off 命令关闭命令提示符窗口的回显,并通过 java -jar ppp.jar 命令来运行你的 Java 程序。
2.将文件保存为一个以 .bat 结尾的文件名,比如 run_ppp.bat。
现在,你可以双击运行 run_ppp.bat 文件,它会自动执行 java -jar ppp.jar 命令,启动你的 Java 程序。
请确保在运行 .bat 文件之前,已经正确配置了 Java 运行环境,并且 ppp.jar 文件与 .bat 文件处于同一目录下。
重启远程 Linux 主机
sudo reboot
参考文章:https://zhuanlan.zhihu.com/p/637157427
阿里云服务器开放端口
参考文章:https://blog.csdn.net/qq754772661/article/details/110876957
linux版本maven历史版本下载与配置
参考文章:https://blog.csdn.net/qq_46921028/article/details/105425160
参考文章:https://blog.csdn.net/java_18945106612/article/details/90301821
参考文章:https://blog.csdn.net/qq_33499232/article/details/112169631
springboot项目命令行后台常驻运行
当你在终端直接运行java -jar命令启动应用时,默认情况下该进程与终端会话是绑定的。当你关闭SSH会话时,由于没有挂载为守护进程或使用nohup、tmux等工具让其在后台持续运行,操作系统可能会认为此进程不再需要并终止它。
解决方案:可以使用以下命令将Java应用作为守护进程运行:
nohup java -jar your-springboot.jar &
或者使用systemd服务管理,创建一个systemd服务单元文件,使得应用能够在系统启动时自动运行并在后台保持运行状态。
SpringBoot项目部署阿里云SSL证书-.pfx
参考文章:https://blog.csdn.net/qq_39038178/article/details/119640646