本文主要是介绍spring boot 多个项目整合,打包成可依赖的包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景介绍
接手前人项目,代码都是一块一块的,很多个spring boot服务,服务器重新启动一下,就要同时再启动很多jar服务,漏一个就麻烦了(虽然有一键启动)。但是有很多终端黑框很是麻烦。领导要求整合成一个,再加个权限认证。特喵的
- AA_service
- BB_service
- CC_service
- DD_service
- .....
最先想到就是再搞一个把这几个都加到Maven依赖里面就OK了,啥也不用改,哈哈哈哈。由此开启了踩坑之路。新建一个All_service
二、启动的问题
1、bean冲突
虽然是不同的项目但是里面的对象很多是名字一样的,spring boot的对象自动注册里面是根据名称的。类名字一样就不行了,这个没办法,遇到就一个一个改
2、启动不了
在新的All_service 的启动类上面加上注解扫描其他的包
@EnableAsync
@SpringBootApplication
@ComponentScan(basePackages = {"cn.com.Aa", "cn.com.Bb", "cn.com.Cc"})
@EnableScheduling
public class AllServiceApplication{public static void main(String[] args) {SpringApplication.run(AllServiceApplication.class, args);}
}
3、jar依赖不了
默认情况 mvn clean package 该命令会打包spring boot项目,将会打包一个XXX.jar 和一个XXX.jar.original * XXX.jar : 是一个可以执行的jar 也即 java -jar XXX.jar 就可以直接执行 * XXX.jar.original : 不可以直接执行,但是可以被其他项目引用,作为依赖jar包(去掉结尾的.original)## 注意 被依赖的jar 需要在pom.xml 里面的打包插件 plugin 加入
<classifier>exec</classifier>
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier> </configuration></plugin>
再次打包 mvn clean package 就会有一个XXX.jar 文件和一个XXX-exec.jar 文件 * XXX.jar : 是一个可以被依赖的jar(被转变了) * XXX-exec.jar : 是一个可以执行的jar了
三、配置文件的问题
spring:config:# 所有spring boot的配置文件,去掉数据库链接方式,去掉端口,去掉路由前缀import:- classpath:yml/application-AA.yml- classpath:yml/application-BB.yml- classpath:yml/application-CC.yml- classpath:yml/application-DD.yml
四、冲突的问题
第三方依赖的问题
<resources><resource><directory>src/main/resources</directory></resource><resource><directory>${project.basedir}/lib</directory><targetPath>BOOT-INF/lib/</targetPath><includes><include>*.jar</include></includes></resource></resources>
这篇关于spring boot 多个项目整合,打包成可依赖的包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!