SBT解析器在build.sbt中工作,不在Build.scala中工作
曾几何时,在遥远的土地上,存在一个带有一个project / build.sbt文件的项目,如下所示:
resolvers += Resolver.url("scala-js-snapshots",url("http://repo.scala-js.org/repo/snapshots/") )(Resolver.ivyStylePatterns) addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.2-SNAPSHOT") 在项目加载时,事情看起来很棒,并且土地上有和平: [info] Resolving org.fusesource.jansi#jansi;1.4 ... [info] downloading http://repo.scalajs.org/repo/snapshots/org.scalalang.modules.scalajs/scalajs-sbtplugin/scala_2.10/sbt_0.13/0.2-SNAPSHOT/jars/scalajs-sbt-plugin.jar ... [info] [SUCCESSFUL ] org.scala-lang.modules.scalajs#scalajs-sbt-plugin;0.2SNAPSHOT!scalajs-sbt-plugin.jar (1936ms) [info] Done updating. 有一天,又创建了另一个项目.与第一个项目不同,这个项目既大又复杂,所以它有一个项目/项目/ Build.scala,如下所示: import sbt._ import Keys._ object Build extends sbt.Build { import sbt._ override lazy val projects = Seq(root) lazy val root = Project("plugins",file(".")) .settings( resolvers += Resolver.url("scala-js-snapshots",url("http://repo.scala-js.org/repo/snapshots/") )(Resolver.ivyStylePatterns),addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.2-SNAPSHOT") ) .dependsOn(uri("../../scala-js-resource/plugin")) .dependsOn(uri("../../scala-js-workbench")) } 在我看来,这应该以与早期安排相同的方式设置SBT插件.毕竟,什么是build.sbt但是一堆设置?唯一的区别是它依赖于其他一些本地项目,因此不能是一个简单的.sbt文件. 但在加载时,发生了一件可怕的事: [warn] module not found: org.scala-lang.modules.scalajs#scalajs-sbt-plugin;0.2-SNAPSHOT [warn] ==== typesafe-ivy-releases: tried [warn] http://repo.typesafe.com/typesafe/ivy-releases/org.scalalang.modules.scalajs/scalajs-sbt-plugin/scala_2.10/sbt_0.13/0.2-SNAPSHOT/ivys/ivy.xml [warn] ==== sbt-plugin-releases: tried [warn] http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.scalalang.modules.scalajs/scalajs-sbt-plugin/scala_2.10/sbt_0.13/0.2-SNAPSHOT/ivys/ivy.xml [warn] ==== local: tried [warn] C:UsersHaoyi.ivy2localorg.scala-lang.modules.scalajsscalajs-sbt-pluginscala_2.10sbt_0.13 .2-SNAPSHOTivysivy.xml [warn] ==== public: tried [warn] http://repo1.maven.org/maven2/org/scala-lang/modules/scalajs/scalajs-sbt-plugin_2.10_0.13/0.2-SNAPSHOT/scalajs-sbt-plugin-0.2-SNAPSHOT.pom 愚蠢的Build.scala,你甚至没有尝试我给你的解析器!我甚至告诉你在哪里寻找该死的模块,为什么你甚至没有尝试就放弃了?你的小兄弟build.sbt发现它非常好. 任何人都知道什么给我,以及我如何使Build.scala像我想要的那样工作? 解决方法
project / build.sbt不是project / Build.scala的小兄弟.前者定义了sbt插件,而后者是实际的构建文件.如果你愿意,它的小弟弟将是< root-dir> /build.sbt.
您应该将插件定义保留在project / build.sbt中.拥有这两个文件没有任何问题. 您的项目定义(以及dependsOn)应该在project / Build.scala中,或者您使用< root-dir> /build.sbt,在sbt 0.13中,您基本上可以执行以前仅限于Build.scala的所有操作,所以我的建议是这些天只使用.sbt文件. 所以请保留project / build.sbt,或者更好地将其重命名为project / plugins.sbt,这样可以减少混淆,并将其用作./build.sbt: lazy val root = Project("plugins",file(".")) .dependsOn(uri("../scala-js-resource/plugin")) .dependsOn(uri("../scala-js-workbench")) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
- Angular 2.0.1路由器EmptyError:顺序没有元素
- 窗口未使用Angular4 AoT Webpack2定义
- shell – 在“find -exec”中多次使用当前文件名(“{}”)?
- angularjs – 如何检测位置变化
- 基于Bootstrap实现tab标签切换效果
- 角度2 – 事件列表
- 《数据结构》实验二 线性表的实验
- Bootstrap的JavaScript需要jQuery版本1.9.1或更高版本
- angularjs – Angular UI Bootstrap typeahead-append-to