gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:46:10 25 4
gpt4 key购买 nike

我想在一个 sbt 项目中为 Scala.js 和 Snap.svg 搭建一座桥梁,但也包括桥梁的演示代码。

当做demos/compile sbt 开始说它无法解决依赖关系。看起来它正试图到达这座桥,就好像它是一个公开的外部项目,但它就在这里,并且可以编译。

我究竟做错了什么?

删除特定于发布的文件似乎并没有带来改变。

目录结构:

├── 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    └── ...

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 ...
[警告]::::::::::::::::::::::::::::::::::::::::::::::
[警告]:: Unresolved 依赖关系::
[警告]::::::::::::::::::::::::::::::::::::::::::::::
[警告]::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 :

addSbtPlugin("org.scala-lang.modules.scalajs"% "scalajs-sbt-plugin"% "0.5.0")

最佳答案

您的问题的根本原因是 bridge项目使用 scalaVersion := "2.11.1" (由您的 build.sbt 指定,但您的 demos 项目使用默认的 scalaVersion(在 sbt 0.13,IIRC 中为 2.10.2)。当尝试将项目与不同的 scalaVersions 关联时,dependsOn 关系会变得困惑. 看到这个问题:https://github.com/sbt/sbt/issues/1448

您可能认为 scalaVersion := "2.11.1"在根 build.sbt将适用于所有子项目。但这不是真的,它只适用于 Root 于 . 的子项目。 (此处为 bridge)。您还必须将此设置(以及您希望共享的其他设置)指定为 settings() 的参数。 demos的方法,或在 scalajs_demos/build.sbt文件。

关于sbt - 为什么我的 sbt 项目依赖项不起作用? (坚持尝试远程获取它),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24985195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com