【发布时间】:2014-09-19 01:08:22
【问题描述】:
我想在一个 sbt 项目中为 Scala.js 和 Snap.svg 搭建一座桥,但也包括桥的演示代码。
当demos/compile sbt 开始说它无法解决依赖关系。看起来它正试图到达这座桥,就好像它是一个公开的外部项目,但它就在这里,并且可以编译。
我做错了什么?
删除特定于发布的文件似乎并没有带来改变。
目录结构:
├── build.sbt ├── 项目 │ ├── (PublishToBintray.scala) │ ├── build.properties │ ├── build.sbt │ ├── 项目 │ │ └── ... │ └── 目标 │ │ └── ... ├── (publishing.sbt) ├── scalajs_demos │ ├── 主要 │ │ └── 斯卡拉 │ │ └── clock.scala │ └── 目标 │ └── ... ├── 源 │ └── 主要 │ └── 斯卡拉 │ └── 组织 │ └── 斯卡拉杰斯 │ └── snapsvg │ ├── SnapSvg.scala │ └── package.scala └── 目标 └── ...build.sbt:
scalaJSSettings
name := "Scala.js Snap.svg"
normalizedName := "scalajs-snapsvg"
version := "0.01"
organization := "org.scala-lang.modules.scalajs"
scalaVersion := "2.11.1"
crossScalaVersions := Seq("2.10.4", "2.11.1") // note: not tested with 2.10.x
libraryDependencies +=
"org.scala-lang.modules.scalajs" %%% "scalajs-dom" % "0.6" // TBD: probably need it, just like jQuery bridge does
ScalaJSKeys.jsDependencies +=
"org.webjars" % "Snap.svg" % "0.3.0" / "snap.svg.js"
homepage := Some(url("http://snapsvg.io/"))
licenses += ("Apache 2.0", url("https://github.com/adobe-webplatform/Snap.svg/blob/master/LICENSE"))
//---
// bridge (main) project
//
lazy val bridge = project.in( file(".") )
//---
// demos project
//
lazy val demos = project.in( file("scalajs_demos") ).dependsOn(bridge)
sbt 出了什么问题:
> 演示/编译 [信息] 更新 {file:/Users/asko/Hg/scala-js-snapsvg/} 演示... [信息] 解决 org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01 ... [警告] 未找到模块:org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01 [警告] ==== 本地:尝试过 [警告] /Users/asko/.ivy2/local/org.scala-lang.modules.scalajs/scalajs-snapsvg_sjs0.5_2.10/0.01/ivys/ivy.xml [警告] ==== 公开:试过 [警告] http://repo1.maven.org/maven2/org/scala-lang/modules/scalajs/scalajs-snapsvg_sjs0.5_2.10/0.01/scalajs-snapsvg_sjs0.5_2.10-0.01.pom [信息] 解决 org.fusesource.jansi#jansi;1.4 ... [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: 未解决的依赖关系 :: [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01:未找到 [警告] :::::::::::::::::::::::::::::::::::::::::::::: [trace] 堆栈跟踪被抑制:运行最后一个 demos/*:update 以获得完整输出。 [错误] (demos/*:update) sbt.ResolveException: unresolved dependency: org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01: not found [错误] 总时间:0 s,完成时间 27.7.2014 22:57:22 >还有一点,project/plugins.sbt:
【问题讨论】:
-
为什么
% "test->test"在.dependsOn(bridge % "test->test")中?似乎您想要compile配置之间的依赖关系(不需要%),而不是从测试配置到测试配置。 -
好吧,这对于这个问题来说是不必要的,也许在一般情况下也是如此。我现在删除了这个概念,但它不会影响问题 - 即使没有它,我仍然会遇到相同的依赖错误。