我正在玩一个sbt web插件,我想在我的项目中重用代码。不幸的是,由于缺少依赖性,我甚至无法在我的项目中编译原始代码。这些是进口:
import com.typesafe.sbt.jse.SbtJsTask
import com.typesafe.sbt.web.{CompileProblems, LineBasedProblem}
import sbt.Keys._
import sbt._
import xsbti.Severity
这些都无法解决。构建失败,并显示not found: object sbt
之类的消息。我检查了原始项目的build.sbt
文件,但libraryDependencies
中没有任何相关内容。
我正在使用Intellij Idea,奇怪的是,当我在项目视图中展开外部库时,我可以在 SBT下找到所有必需的内容:sbt-and-plugins < / em>(例如对象com.typesafe.sbt.web.CompileProblems
就在那里,我可以在类文件中看到它的定义)。
在我看来,我需要的东西是sbt的核心部分,但不知何故它不会加载到项目中。我做错了什么?
答案 0 :(得分:8)
使用自定义常春藤解析器:
resolvers += Resolver.url("SBT Plugins", url("https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
libraryDependencies += ("com.typesafe.sbt" % "sbt-js-engine" % "1.0.2")
.extra(
sbt.mavenint.PomExtraDependencyAttributes.SbtVersionKey -> sbtBinaryVersion.value,
sbt.mavenint.PomExtraDependencyAttributes.ScalaVersionKey -> scalaBinaryVersion.value)
.copy(crossVersion = CrossVersion.Disabled)
要弄明白sbt从哪里下载罐子,我使用了这个(有点尴尬)的过程:
首先,我想知道sbt存储文件的位置。所以:
sbt "reload plugins" "show fullClasspath" | sed s/\),\ Attributed\(/\\n/g
我搜索了输出(或者您可以使用grep
)。
然后,我删除了该文件,并再次执行了sbt:reload plugins
,update
&amp; last update
查看完整更新日志。
在搜索日志时,我发现了一行说sbt从哪里获得插件。