Springboot项目打包后代码没有生效的问题

文章描述了一个使用Springboot开发的多模块项目在部署到服务器时遇到的问题,即打包后的版本与本地IDEA运行的版本不一致,新代码未生效。作者发现错误在于直接在启动类模块打包,而忽略了在父模块中先执行install。正确的流程是先在父模块clean和install,然后在启动类模块package,按照此方法解决了问题。

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

1、场景

我是使用 Springboot 开发的项目,并且区分了多个模块。

项目结构目录如下:

 syk-official 是父模块,用来管理所有的pom依赖;

其余全部都是子模块,统一以syk-official作为父模块;

application 是项目的启动模块,用来启动项目的唯一入口;

2、问题

项目一直在本地开发、测试且一直没有任何问题,但是今天打算部署服务器进行测试下,然后就出现了很懵逼的问题,就是打包后运行的项目和本地idea运行的项目不一致,出现了很多老项目的接口模块,有些接口的参数也都对不上,其实就是新编写的所有代码没有生效导致这样的问题。

3、解决

开始在网上查了很多的解决方式,比如清理idea缓存、更换打jar包的方式、修改项目配置等等,可是最后都没有生效,后来经过多次测试后慢慢发现了问题。首先我项目的架构比较不一样,因为我是由父模块管理了所有子模块,并且启动类也是在子模块中,正常打包的话直接在启动类中package,其实这个步骤就不对忽略了一步,正确的步骤应该是先在父模块中进行install,然后在启动类模块package就可以(install前也可以clean下),这样问题就得到了解决。

第一步:

 

第二步:

 

 

### 解决 Spring Boot 项目中 CSS 样式不生效的方法 #### 配置静态资源路径 为了使 CSS 文件能够被正确加载,确保这些文件放置于 Spring Boot 支持的静态资源目录之一。支持的静态资源位置括 `static`、`public` 或者 `resources` 目录下[^1]。 对于 Maven 构建工具,默认情况下只有位于 `src/main/resources` 下的内容会被打包到最终的 JAR 文件里。因此如果创建了一个根级别的 `/static` 文件夹来存放前端资产,在开发阶段通过 `spring-boot:run` 可能会正常工作;但是当构建并运行 JAR 文件时,则不会含该文件夹中的内容[^3]。 建议的做法是在项目的 `src/main/resources/` 路径下面建立名为 `static` 的子文件夹,并在此处保存所有的静态网页资源,比如 HTML 页面以及样式表等: ```plaintext src/ └── main/ └── resources/ ├── static/ │ ├── css/ │ │ └── styles.css │ └── index.html ``` #### 正确引用外部样式表 在 HTML 中引入 CSS 文件的方式如下所示,注意 URL 应指向相对于 Web 上下文根的位置而不是磁盘上的绝对路径: ```html <!DOCTYPE html> <html lang="en"> <head> <!-- 引入本地 CSS --> <link rel="stylesheet" href="/css/styles.css"/> </head> <body> </body> </html> ``` 这里假设 `styles.css` 存储在 `src/main/resources/static/css/` 这样的结构内。 #### 开发环境配置 为了让开发者能够在开发过程中更方便地调试前端代码,可以考虑集成像 Webpack Dev Server 这样的工具。这允许在一个独立的服务上启动应用的同时代理请求至实际的应用服务器地址,从而避免跨域资源共享(CORS)问题的发生[^2]。 例如可以在 `application.properties` 或者 `application.yml` 文件里面设置如下的属性以便更好地控制如何处理静态资源: ```properties # application.properties example server.servlet.context-path=/myapp spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ ``` 或者 YAML 版本: ```yaml # application.yml example server: servlet: context-path: /myapp spring: web: resources: static-locations: "classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/" ``` 以上措施应该可以帮助解决大多数关于 Spring Boot 项目里的 CSS 不起作用的情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想养一只!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值