spring聚合项目,项目A本来是没有springboot启动类的,只是被其他项目B依赖,后面有一天,项目A也做改成了一个需要启动的服务,然后加了spring boot的启动类,在pom文件中加上了springboot的maven插件:spring-boot-maven-plugin。然后在打包的时候到项目B,就报错,找不到依赖A中的类,一开始百思不得其解,明明有那个类,还可以点进去,但是打包的时候就是说找不到引用的那个类,被这个问题困扰了好久。后面找到一篇文章,才清楚其中缘由:
Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java-jar xxx.jar 命令执行,普通的 jar 主要是被其他应用依赖, SpringBoot 打成的 jar 可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边的类。但是可执行 jar 并不是 Spring Boot 独有的,Java 工程本身就可以打包成可执行 jar 。
在springboot里面需要打包成可执行的jar,也就是能启动成一个服务的,需要用到 spring-boot-maven-plugin。
原文剖析得比较清楚
原文链接:https://zhuanlan.zhihu.com/p/72955064
探讨了在SpringBoot项目中,当一个项目从库项目转变为可独立运行的服务时,如何正确配置使其既能独立运行又能被其他项目正确依赖,避免打包时出现类找不到的错误。
4743

被折叠的 条评论
为什么被折叠?



