SBT发布本地类库

自己写的库如何发布使得其他的项目可以依赖? 

首先是某个类库要定义好name, organization这些属性(在build.sbt中), 然后指定 publishTo 的值

我这里是发布到的本地的仓库, 所以Resolver使用的是文件路径, 也可以是URL,具体参考官网的文档

https://www.scala-sbt.org/1.x/docs/Publishing.html

SBT发布本地类库

下面的 publishLocalConfiguration.value.withOverwrite(true) 是为了允许发布的时候覆盖, 否则已存在的话, 发布会有个报错提示你加这个配置

 

类库的 build.sbt 定义

SBT发布本地类库

然后在 sbt 命令行中, 运行 pushlish 即可发布到对应路径, 可以打开对应的路径查看

控制台也会输出路径

SBT发布本地类库

 

对于依赖方, 在build.sbt中配置对应的 resolver 和 依赖即可引用相应的库了

注意这里 sbt.override.build.repos=false 才行, 不能为 true, 否则不会使用这里定义的resolvers

依赖路径中的 %% 表示ivy的依赖路径, 后面是有具体scala的版本号的,可以看到上面的发布路径中有 _2.12 的后缀

如果只使用 % 是找不到路径的, 报错信息里面也会有所体现

SBT发布本地类库