如何为scala项目同步Intellij和sbt构建

用户名

我有一个已导入Intellij的sbt项目。有时,我使用sbt在命令行中构建项目,然后在需要调试时从Intellij中构建它。但是,每次我交替使用时,都在不需要时需要完全重建。两种构建过程都输出到相同的类文件夹,即... / target / scala-2.11 / classes,所以我不明白为什么会继续进行完全重建?

疯狂编码器

IntelliJ IDEA无法重用其他构建系统生成的类,因为它具有自己的增量编译器,该编译器跟踪依赖关系并在编译过程中构建缓存,以便在更改代码时只能编译已修改的文件和依赖文件。当您使用SBT / Maven / Gradle或命令行javac进行构建时,IntelliJ IDEA编译器缓存不知道更改了哪些内容以及应编译的文件,因此它将执行完全重建。

一种解决方案是将不同的输出目录用于IDE和SBT,这样IntelliJ IDEA将仅重建自IDE上次构建以来修改的文件,而命令行SBT生成将不会触发IDE中的重建。

使用sbt-ide-settings插件执行此配置

将以下内容添加到plugins.sbt(或在其中配置插件的任何文件中):

resolvers += Resolver.url("jetbrains-bintray",url("http://dl.bintray.com/jetbrains/sbt-plugins/"))(Resolver.ivyStylePatterns)
addSbtPlugin("org.jetbrains" % "sbt-ide-settings" % "0.1.2")

这是如何在中自定义IDE输出目录build.sbt

ideOutputDirectory in Compile := Some(new File("target/idea/classes"))
ideOutputDirectory in Test := Some(new File("target/idea/test-classes"))

随时根据需要更改路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为Linux构建Visual C ++项目?

使用SBT构建Scala / Spark项目时的警告

对IntelliJ IDEA中的Scala / sbt项目推荐.gitignore?

如何使用IntelliJ Idea创建SBT项目?

如何设置sbt / scala / play多模块项目,该项目可与Intellij scala插件配合使用

Intellij:基于SBT的Scala项目无法使用Java 9构建

如何构建,编译和运行Scala项目?

IntelliJ 14-创建/导入Scala / SBT项目

使用SBT管理同时包含Scala和Python的项目

IntelliJ IDEA:在单个项目中同时支持SBT和Maven

如何为IntelliJ安装Scala插件

我如何告诉SBT使用Scala的2.12或2.13的每日构建?

如何配置IntelliJ以使用Homebrew安装的Java,Scala和SBT?

如何为Angular项目重用构建

Sbt:如何为所有项目定义任务?

如何在IntelliJ IDEA中创建Spark / Scala项目(无法解析build.sbt中的依赖项)?

Intellij SBT项目:如何更改内容根?

在IntelliJ上构建Scala-Maven项目时发生异常

IntelliJ:多模块scala(SBT)项目源代码重构

如何在SBT中的项目和构建定义项目之间共享代码

如何为Eclipse Java项目生成Ant和Maven构建文件?

IntelliJ Scala无法构建简单的项目(SBT可以)

如何在Intellij Idea上将源附加到scala sbt项目?

在IntelliJ SBT项目中找不到运行Scala的类

intellij-我创建哪个Scala项目,Scala-Scala或Scala-SBT?

与sbt scala和android dev的intellij

如何为使用Qt的构建配置基于cmake的项目

如何为 python 项目创建 TFS 构建?

在intelliJ中创建Scala项目时,SBT和IDEA有什么区别?