热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IntelliJ上的SBT需要很长时间才能刷新

如何解决《IntelliJ上的SBT需要很长时间才能刷新》经验,为你挑选了2个好方法。

我有一个相当大的项目(15个以上的子项目),它有很多外部依赖项.当我改变一行build.sbt然后点击刷新时,IntelliJ会在很长一段时间内(30多分钟)继续解决各种依赖关系.

应该这么慢吗?从命令行使用sbt不会超过30秒左右.

我在用 -

Macbook pro mid 2015 with 16 GB ram
IntelliJ IDEA Ultimate 2017.2.5
sbt 0.13.13 
scala 2.11.11

Haspemulator.. 6

有一点可以帮助缓存依赖项解析,这是一个从sbt 0.13.7开始可用的设置.看看这里:http://www.scala-sbt.org/1.0/docs/Cached-Resolution.html,但基本上你需要为你的构建中的所有项目启用以下设置:

updateOptions := updateOptions.value.withCachedResolution(true)

通过此设置,我能够将IntelliJ项目刷新时间从15分钟缩短到3分钟.仍然不理想,但更易于管理.

有一些警告,因为它是一个实验设置,它们在该页面中描述.基本上,如果你有SNAPSHOT依赖项,启用它只会让事情变得更糟,所以要注意这一点.



1> Haspemulator..:

有一点可以帮助缓存依赖项解析,这是一个从sbt 0.13.7开始可用的设置.看看这里:http://www.scala-sbt.org/1.0/docs/Cached-Resolution.html,但基本上你需要为你的构建中的所有项目启用以下设置:

updateOptions := updateOptions.value.withCachedResolution(true)

通过此设置,我能够将IntelliJ项目刷新时间从15分钟缩短到3分钟.仍然不理想,但更易于管理.

有一些警告,因为它是一个实验设置,它们在该页面中描述.基本上,如果你有SNAPSHOT依赖项,启用它只会让事情变得更糟,所以要注意这一点.



2> 小智..:

Kakaji和Haspemulator的答案帮助我在~40个项目构建中将导入降低了约3分钟.除此之外,我发现IntelliJ SBT导入中的大部分时间都是从Ivy中获取依赖项作为updateClassifiers命令的一部分.

如果在导入项目时启用了"库源"复选框,则每次执行导入时都会发生这种情况.如果你也检查'sbt sources',我希望它会慢一点因为这意味着要解决更多的库.

加速的一种方法updateClassifiers是使用coursier进行依赖性解析.我刚刚将以下行添加到project/plugins.sbt,现在它在~1分钟内导入.

addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.1")

您可以updateClassifiers在https://github.com/sbt/sbt/issues/1930上阅读更多有关缓慢的信息


推荐阅读
  • 在使用sbt构建项目时,遇到了“对象apache不是org软件包的成员”的错误。本文详细分析了该问题的原因,并提供了有效的解决方案,包括检查依赖配置、清理缓存和更新sbt插件等步骤,帮助开发者快速解决问题。 ... [详细]
  • 【线段树】  本质是二叉树,每个节点表示一个区间[L,R],设m(R-L+1)2(该处结果向下取整)左孩子区间为[L,m],右孩子区间为[m ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 本文深入探讨了 C# 中 `SqlCommand` 和 `SqlDataAdapter` 的核心差异及其应用场景。`SqlCommand` 主要用于执行单一的 SQL 命令,并通过 `DataReader` 获取结果,具有较高的执行效率,但灵活性较低。相比之下,`SqlDataAdapter` 则适用于复杂的数据操作,通过 `DataSet` 提供了更多的数据处理功能,如数据填充、更新和批量操作,更适合需要频繁数据交互的场景。 ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • Java 中的等时日期(int,int)方法,示例 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 解决Unreal Engine中UMG按钮长时间按住自动释放的问题
    本文探讨了在Unreal Engine中使用UMG按钮时,长时间按住按钮会导致自动释放的问题,并提供了详细的解决方案。 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • Java中将Map及其他对象高效转换为JSON格式的方法探讨 ... [详细]
author-avatar
DTor惜涵_237
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有