当前位置: 首页 > 知识库问答 >
问题:

为什么我的sbt项目依赖不起作用?(坚持尝试远程取)

傅经业
2023-03-14

我希望在一个sbt项目中有一个scala.js和snap.svg的桥接器,但也包括桥接器的演示代码。

├── build.sbt
├── project
│   ├── (PublishToBintray.scala)
│   ├── build.properties
│   ├── build.sbt
│   ├── project
│   │   └── ...
│   └── target
│   │   └── ...
├── (publishing.sbt)
├── scalajs_demos
│   ├── main
│   │   └── scala
│   │       └── clock.scala
│   └── target
│       └── ...
├── src
│   └── main
│       └── scala
│           └── org
│               └── scalajs
│                   └── snapsvg
│                       ├── SnapSvg.scala
│                       └── package.scala
└── target
    └── ...
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)
> demos/compile
[info] Updating {file:/Users/asko/Hg/scala-js-snapsvg/}demos...
[info] Resolving org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01 ...
[warn]  module not found: org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01
[warn] ==== local: tried
[warn]   /Users/asko/.ivy2/local/org.scala-lang.modules.scalajs/scalajs-snapsvg_sjs0.5_2.10/0.01/ivys/ivy.xml
[warn] ==== public: tried
[warn]   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
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last demos/*:update for the full output.
[error] (demos/*:update) sbt.ResolveException: unresolved dependency: org.scala-lang.modules.scalajs#scalajs-snapsvg_sjs0.5_2.10;0.01: not found
[error] Total time: 0 s, completed 27.7.2014 22:57:22
> 
addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.5.0")

共有1个答案

赵锐
2023-03-14

问题的根本原因是bridge项目使用Scalaversion:=“2.11.1”(由build.sbt指定,但demos项目使用默认的Scalaversion(在sbt 0.13,IIRC中为2.10.2)。dependson关系试图将项目与不同的Scalaversions关联时会混淆。请参阅此问题:https://github.com/sbt/sbt/issues/1448

您可能认为根build.sbt中的scalaversion:=“2.11.1”将应用于所有子项目。但那不是真的,它只适用于根植于.(这里是bridge)的子项目。您还必须指定此设置(以及您希望共享的其他设置)作为demossettings()方法的参数,或者在scalajs_demos/build.sbt文件中指定。

 类似资料:
  • 我已经下载了SBT 0.3.15,我正在尝试运行它:现在,我只想运行SBT并获得提示;我还没有处于我想构建项目的阶段(尽管我希望能够很快完成)。 然而,我面临着SBT试图下载的奇怪依赖项的问题。我最初面临代理的问题,但现在好多了。SBT尝试下载的第一件事是pom。jansi项目1.11的xml及其工作原理: 它尝试下载的下一个文件是fusesource-pom-1.8。Maven central

  • 我有一个sbt插件项目,使用多项目构建。我想使用这个插件作为其他sbt项目的依赖项。我已经创建了一个插件,但是当我把这个插件添加到project中时,我似乎不能正确地连接依赖项。 我在这里漏掉了什么?

  • null build.gradle 沉降。gradle src/ 在中,我希望将添加为依赖项: 不幸的是,我总是收到这样的错误消息: 我想知道我做错了什么,为什么显然没有很多其他人有同样的问题。如果有提示我会很感激的。 注意:这不是一个Android项目。

  • 试图遵循O'Reilly的“编程Scala”一书中的示例。下载并安装sbt,使用:brew install sbt@1似乎已成功。然后在命令行输入“sbt”或“sbt-v”(在Mac上bash)后,我会得到: 格伦

  • 我想将此SecureSocial快照用于我的项目: 版本信息: Scala版本:2.11.5 SBT版本:0.13.8 播放版本:2.3.7

  • 我对这段代码有一个问题,因为我似乎找不到问题所在?这是我试图解决的问题:-声明并编写一个名为valid_triangle的函数,它将表示三角形三边长度的三个实数作为参数,并根据这三个长度是否能够构成三角形输出真或假。 关于三角形的以下规则: 三角形只能有正长度的边 三角形任意两条边的长度之和必须大于第三条边的长度