STS将SpringBoot项目分别打成jar包和war包部署在tomcat服务器上

本文详细介绍如何将SpringBoot项目打包为Jar或War包,并部署到服务器或Tomcat上。包括修改POM文件、使用Maven命令、配置Tomcat等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将SpringBoot工程打成Jar包

1、在<build></build>中第一行添加<finalName>limits</finalName>即打包后的名字

     更改pom文件,添加一下信息:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
	<skip>true</skip>
	</configuration>
</plugin>
<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

2、右击项目,选择Run As - Maven clean

      右击项目,选择Run As - Maven install

      成功后 会在项目的target文件夹下生成jar包

      将打包好的jar包 发布到服务器,或在命令行中运行java -jar jar包

 

 

二、将工程打成war包

1、在pom文件中将jar包改为war包

<packaging>war</packaging>

2、修改pom文件

<!--配置外部TOMCAT -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

3、找到<build></build>中,添加下方代码

<finalName>limits</finalName>
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
</plugins>

右键工程选择maven,再选择update project...,项目红叉即消失

 

4、更改Application启动类

package com.gt;
 
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;
 
@SpringBootApplication
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

主要添加了重写config方法、继承了SpringBootServletInitializer类

package com.gt;
 
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;
 
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

5、右键项目,run as --->maven clean  --->maven install 

6、war包生成于项目工程中target文件夹下

打war包参考自:https://blog.youkuaiyun.com/zangguangtian/article/details/79542378

 

 

三、将war包部署到Tomcat

1、将war包复制到tomcat中webapp文件夹下,启动tomcat

2、访问项目页面:localhost:8080/项目名/url映射

3、问题:加载不出图片

<think>嗯,用户问的是STS4在Tomcat上运行时出现java.lang.ClassNotFoundException的错误。首先,我需要回忆一下常见的导致这个错误的原因。ClassNotFoundException通常意味着类加载器找不到某个特定的类,可能的原因有很多,比如依赖缺失、部署配置问题、类路径设置不正确等等。 用户使用的是STS4,也就是Spring Tool Suite 4,这可能意味着他们是在开发一个Spring项目,可能使用Maven或Gradle构建工具。Tomcat作为应用服务器部署时可能会遇到依赖库没有正确打的情况,比如没有将依赖的JAR放入WEB-INF/lib目录下。这时候需要检查项目的构建配置,确保依赖被正确含。 另外,可能项目本身的结构有问题,比如Maven项目没有正确打WAR文件,或者某些类没有被编译到输出目录中。这时候需要检查构建过程是否有错误,确认target目录下生成的WAR文件是否含所有必要的类。 还有可能Tomcat的版本与项目使用的Java版本不兼容,比如Tomcat 10需要Jakarta EE的名,而旧版本可能使用javax。如果项目依赖的库还是javax的,可能在Tomcat 10上会出现问题,导致类找不到。这时候需要确认版本兼容性,调整依赖或更换Tomcat版本。 另外,用户的IDE配置是否正确?比如在STS4中,Tomcat服务器部署设置是否正确,是否将项目正确添加到服务器中。有时候可能需要清理Tomcat的工作目录,或者重新发布项目。 还有可能是项目中的web.xml配置有误,或者servlet相关的类路径配置错误,导致Tomcat在启动时无法加载某些类。需要检查web.xml相关的配置文件。 可能用户没有正确刷新项目,或者构建过程中有缓存,导致最新的类没有被部署。这时候可以尝试清理项目,重新构建,再重新部署Tomcat。 还有可能是依赖冲突,不同的库版本中存在相同的类,导致类加载器找不到正确的版本。这时候需要检查依赖树,排除冲突的依赖。 总结一下,可能的解决步骤括:检查依赖是否正确打,确认构建配置,检查TomcatJava版本兼容性,清理重新部署项目,检查类路径配置,排除依赖冲突等。用户需要根据具体情况一步步排查这些可能性,找到导致ClassNotFoundException的具体原因。</think>在STS4(Spring Tool Suite 4)中部署项目Tomcat时遇到 `java.lang.ClassNotFoundException` 错误,通常与类路径配置或依赖管理有关。以下是逐步排查解决方案: --- ### **1. 检查依赖是否完整** - **现象**:缺少项目依赖的JAR。 - **解决方法**: - 如果是Maven项目: 1. 右键项目 → `Maven` → `Update Project`(勾选 `Force Update`) 2. 检查 `pom.xml` 是否声明了所有必要依赖。 3. 确认 `target` 目录下的 `WEB-INF/lib` 是否含所有依赖JAR。 - 如果是普通Java项目: 1. 右键项目 → `Build Path` → `Configure Build Path` → 检查引用的库是否完整。 --- ### **2. 验证部署配置** - **现象**:Tomcat未正确加载项目依赖。 - **解决方法**: 1. 右键Tomcat服务器 → `Clean` 清理工作目录。 2. 检查部署方式: - 确保项目通过 `Add and Remove...` 添加到Tomcat,而非直接复制文件。 3. 确认部署WAR结构: - 解压生成的WAR文件,检查 `WEB-INF/classes` 是否含编译后的类文件。 --- ### **3. 检查Java版本兼容性** - **现象**:Tomcat版本与JDK不兼容。 - **解决方法**: - 确认Tomcat版本支持的JDK版本: - Tomcat 10.x → 需要JDK 11+ - Tomcat 9.x → 支持JDK 8+ - 在STS4中配置正确的JDK: - `Window` → `Preferences` → `Java` → `Installed JREs` --- ### **4. 排查类路径冲突** - **现象**:多个JAR含相同类名。 - **解决方法**: - 使用Maven依赖分析: ```bash mvn dependency:tree ``` - 排除重复依赖: ```xml <dependency> <groupId>冲突的groupId</groupId> <artifactId>冲突的artifactId</artifactId> <exclusions> <exclusion> <groupId>需排除的groupId</groupId> <artifactId>需排除的artifactId</artifactId> </exclusion> </exclusions> </dependency> ``` --- ### **5. 清理缓存并重启** - **现象**:IDE缓存导致旧配置残留。 - **解决方法**: 1. 清理项目:`Project` → `Clean` 2. 删除Tomcat的 `work` 目录(位于Tomcat安装路径下)。 3. 重启STS4Tomcat。 --- ### **6. 验证Tomcat类加载机制** - **现象**:Tomcat未正确加载项目类。 - **解决方法**: 1. 检查 `context.xml` 配置: ```xml <Context reloadable="true"> <Loader delegate="true" /> </Context> ``` 2. 确保未手动修改Tomcat的 `lib` 目录(第三方JAR应放在项目的 `WEB-INF/lib`)。 --- ### **7. 检查日志定位具体类名** - **关键步骤**:查看Tomcat日志(`catalina.out` 或控制台输出),找到具体缺失的类名。 - 例如: ```log java.lang.ClassNotFoundException: com.example.MyService ``` - 根据类名反向定位缺少的依赖或配置。 --- ### **总结流程** 1. 确保依赖完整 → 2. 清理并重新部署 → 3. 检查版本兼容性 → 4. 分析日志定位问题类。 如果问题仍未解决,请提供具体错误日志中的类名项目类型(如Spring Boot、普通Servlet等),可进一步分析!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值