sofastack / sofa-serverless

a framework to enabe app architecture evolve from monolithic to microservices smoothly by involving modular and macroservices architecture.
https://sofaserverless.gitee.io/home/
Apache License 2.0
115 stars 41 forks source link

当前依赖还无法统一管理,考虑设计 bom 做统一包管理 #186

Closed lvjing2 closed 8 months ago

lvjing2 commented 11 months ago

当前 sofa serverless runtime 引入的依赖,例如 sofa Ark 的版本,无法在应用基座里直接覆盖。

sofa serverless runtime 的依赖

image

业务基座引入的依赖

image

实际 maven dependency:tree 的执行结果

image

yuanyuancin commented 9 months ago

sofa-serverless-runtime 包含 sofa-ark、arklet、runtime、adapter、plugin等一系列不同版本号的sdk,如果通过统一 bom 管理,类似

<dependency>
    <groupId>com.alipay.sofa.serverless</groupId>
    <artifactId>serverless-bom</artifactId>     
    <version>${serverless.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

用户需要指定 bom version使用不同版本的bom,在不同版本的bom中声明 sofa-ark、arklet、runtime、adapter、plugin 等一系列 sdk 的版本集合,用户如果想单独自定义其中某sdk版本,如sofa-ark,需要在主pom properties 中声明 sofa.ark.version 并且在 dependencyManagement 中再次定义 sofa-ark GAV version=${sofa.ark.version} 才行

lvjing2 commented 8 months ago

减少自身引入的依赖