scala – 当只有一个更改时,为什么sbt会解析所有依赖项?
发布时间:2020-12-16 08:43:14 所属栏目:安全 来源:网络整理
导读:当我更改项目的一个依赖项时,sbt会运行所有依赖项的解析(不仅仅是针对已更改的依赖项).当为多模块项目中的每个项目进行这样的冗余解决时,特别耗时. 为什么sbt做出这样的冗余解决方案?有没有办法让解决方案更加智能化? 解决方法 主要原因是因为sbt需要解决
当我更改项目的一个依赖项时,sbt会运行所有依赖项的解析(不仅仅是针对已更改的依赖项).当为多模块项目中的每个项目进行这样的冗余解决时,特别耗时.
为什么sbt做出这样的冗余解决方案?有没有办法让解决方案更加智能化? 解决方法
主要原因是因为sbt需要解决冲突.不仅如此,常春藤需要经常解决所有-SNAPSHOT依赖关系,以确保它具有最新信息.这是因为,默认情况下,sbt使用“最新”冲突解决管理器,而不是maven使用的“最近”.根据我的经验,这可以减少工件版本的问题.但是,正如Mark所说,它确实意味着它将重新创建整个dep树.
sbt中的所有分辨率都被委托给常春藤.为了使它更智能,你必须为Ivy创建钩子或者替换sbt使用的依赖管理库.在这个分辨率的情况下,我认为唯一可以做的就是以减少恢复先前缓存的工件信息所花费的时间的方式改进缓存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |