如何将Maven构建的Spring Boot项目部署到XAMPP htdocs并正常运行?
解决Spring Boot项目放入XAMPP htdocs无法正常访问的问题
问题根源
你直接把Spring Boot的源码文件夹丢进了XAMPP的htdocs目录——这是错误的用法:htdocs是Apache HTTP Server存放静态文件、PHP项目的目录,而Spring Boot是Java Web项目,需要打包后部署到Servlet容器(如Tomcat),或者直接运行自带的嵌入式Tomcat。
方法一:打包成Jar包直接运行(无需依赖XAMPP的Tomcat)
这是最简单的方式,Spring Boot自带嵌入式Tomcat,无需额外配置XAMPP的容器:
- 找到项目根目录(存在
pom.xml的文件夹),打开命令行执行:
执行完成后,项目的mvn clean package -DskipTeststarget目录会生成一个类似myproject-0.0.1-SNAPSHOT.jar的可执行Jar包。 - 将这个Jar包复制到任意目录(不一定非要
htdocs),比如C:\xampp\htdocs\。 - 打开命令行进入Jar包所在目录,执行启动命令:
java -jar myproject-0.0.1-SNAPSHOT.jar - 启动完成后,浏览器访问
localhost:8080(如果项目配置了自定义端口,替换为对应端口)即可正常访问。
方法二:打包成War包部署到XAMPP的Tomcat
如果一定要用XAMPP内置的Tomcat,先确保安装XAMPP时勾选了Tomcat组件,再按以下步骤操作:
- 修改项目配置
- 打开
pom.xml,将打包方式改为war:<packaging>war</packaging> - 排除Spring Boot自带的Tomcat依赖,避免与XAMPP的Tomcat冲突:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加Servlet API依赖,仅编译时使用 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> - 修改项目启动类,继承
SpringBootServletInitializer并重写configure方法:@SpringBootApplication public class MyProjectApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyProjectApplication.class); } public static void main(String[] args) { SpringApplication.run(MyProjectApplication.class, args); } }
- 打开
- 打包War包
在项目根目录执行命令:
生成的War包同样在mvn clean package -DskipTeststarget目录下。 - 部署到XAMPP的Tomcat
- 找到XAMPP的Tomcat的
webapps目录,路径一般为C:\xampp\tomcat\webapps。 - 将War包复制到该目录,Tomcat启动时会自动解压部署。
- 找到XAMPP的Tomcat的
- 启动并访问
在XAMPP控制面板启动Tomcat服务,浏览器访问localhost:8080/你的War包名称(比如War包名为myproject.war,则访问localhost:8080/myproject)。
额外注意事项
- 数据库配置检查:确保项目的
application.properties或application.yml中,数据库连接信息与当前电脑XAMPP的MySQL配置一致,示例配置:spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=你的MySQL密码 - 端口冲突处理:如果想让Spring Boot使用80端口(直接访问
localhost),需要在配置文件中设置server.port=80,同时确保XAMPP的Apache服务未占用80端口(可先停止Apache)。
内容的提问来源于stack exchange,提问作者Michael Nunziata
相关产品推荐
相关产品推荐

