强制 sbt 重新加载整个构建定义

Posted

技术标签:

【中文标题】强制 sbt 重新加载整个构建定义【英文标题】:Force sbt to reload whole build definition 【发布时间】:2018-03-19 03:03:21 【问题描述】:

sbt.version 0.13.15

问题

如何强制 sbt 重新加载和重新编译所有构建定义,无论它们是否被更改?

故事

我有一个包含多个 sbt 和 scala 文件的多项目构建。当我第一次在控制台中通过sbt -v 加载项目(我不是作者)时,我得到了一个不推荐使用的警告列表(主要是像<<=<+=<++= 这样的运算符)。我想解决所有这些问题,但现在当我再次启动sbt -v 时,我不再收到这些警告。甚至在reload 之后也没有。

我尝试修改构建文件(删除导入)然后重新加载。它向我显示了由删除导入引起的错误,但没有警告。修复导入后,它仍然没有显示任何警告。

我能够再次看到该列表的唯一方法是以直接影响构建定义的方式更改构建文件然后重新加载它......

底线

所以是的,我可以编辑每个 sbt 文件然后重新加载它。但我想知道一定有更好的方法。必须有一种方法可以强制重新加载整个构建定义或以某种方式调用该警告列表。

感谢您对此的想法!

【问题讨论】:

【参考方案1】:

我发现编译后的构建定义存储在project/target。所以要实现我想要的,删除这个目录然后重新加载就足够了。这不是来自 sbt 的命令,但它可以工作。

【讨论】:

以上是关于强制 sbt 重新加载整个构建定义的主要内容,如果未能解决你的问题,请参考以下文章

在 Blazor 服务器中使用 NavigationManager NavigateTo 强制加载不会重新加载整个索引

如何强制重新加载缓存的 HTML 文件

IE8中的强制重新计算样式-

如何在 UICollectionView 中强制重新加载自定义单元格?

使用 Framework7 强制重新加载页面

gitlab ci:sbt 在每个阶段重新编译