微服务架构 共享依赖如何处理 10C

现在有个微服务项目,项目框架搭建中,多个微服务创建的过程中会用到一些
spring boot常用的依赖,比如spring-boot-starter-web,spring-cloud-starter-eureka-server等必须的依赖,难道每个服务的pom文件中都要有这样的依赖吗,
如果每个pom文件都这样,后期jar升级是不是很麻烦,于是我做了一个共通的jar,把所需要的共通依赖加载进来,可是后面发现好像会有jar冲突的现象,不知道各位有什么好的解决方案

4个回答

建一个父maven工程,具体微服务项目作为子maven工程。父maven工程用来管理所有jar包及版本,
子maven工程可以直接使用父maven的jar包,如果子工程有特殊的jar在子工程的pom文件中引入就可以了。
提供思路,具体实现自行研究

很简单,我们最近也在用springboot,每一个pom文件确实需要这样的依赖。
你可以把你自己通用的jar放在 maven私服中,至于如何搭建maven私服,请自行百度。
然后其他的子项目引入你maven私服里面的jar就行了。后面如果升级,只要改版本号就行了。
还有正常来讲你分布式部署的话,应该每一个项目都是独立的服务。只需要修改服务里面的实现就行了,
这样调用这个服务的系统就都升级了。

qq_36378416
y打伞的鱼y 多个子项目引入相同的jar包应该也没什么问题,只要是spring boot引入的jar 和 tomcat 及jdk的jar 不冲突就行,你仔细排查下出错的地方
2 年多之前 回复
qq_39050876
每个人都可以成为导师 我也是向你们这样做的,可是有一个问题,我把网关所需的依赖添加在共通jar之后,使用的时候报错了,好像是jar冲突了
2 年多之前 回复

微服务和maven父子工程更配。通过maven继承,将通用的包定义在父类工程中,子类直接引用,不需要重复定义; 而通过maven聚合,将几个独立的maven项目组成一个整体,达到maven工程自动化构建和部署的效果,此时需要使用modules标签 。建议看看maven父子工程的创建。

1.创建一个maven工程作为父工程(此工程放子工程公共依赖);
2把pom标签改为pom并保存;
3.点击Overview视图找到Modules标签,标签右边有两个按钮一个Add,一个Create);
4.点击Create标签创建子工程,子工程自动依赖父工程pom,子工程特殊依赖只要在子工程pom加入即可.

xiaohei748
ouwang_ 第二处是把Packaging标签改为pom
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问