如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目?

2024-05-27

其他答案中有很多含糊不清的内容,或者涉及到更旧版本的 sbt(即 0.12.x),但似乎没有人真正回答这个问题。

鉴于我有一个文件夹,并且我已经运行:

sbt new scala/scala-seed.g8
name [Scala Seed Project]: one

sbt new scala/scala-seed.g8
name [Scala Seed Project]: two

我现在有一个如下所示的目录结构:

8   ./one/build.sbt
8   ./one/...
8   ./two/build.sbt
8   ./two/...
80  .

好的,所以我现在去改变example命名空间在one and two,所以代码在相应的中看起来像这样Hello.scala files:

package example.two

object Hello extends Greeting {
}

trait Greeting {
  lazy val greeting: String = "hello two"
}

and:

package example.one

object Hello extends Greeting with App {
  println(greeting)
  println(example.two.Hello.greeting)
}

trait Greeting {
  lazy val greeting: String = "hello one"
}

现在,我到底该如何编写代码one编译并运行?

从我读过的内容来看,我似乎应该做类似的事情one/project/Dependencies.scala:

import sbt._

object Dependencies {
  lazy val scalaTest = "org.scalatest" %% "scalatest" % "3.0.5"
  lazy val two = ProjectRef(file("../two"), "two") <------------ ADD THIS
}

这在one/build.sbt:

import Dependencies._

lazy val root = (project in file("."))
  .dependsOn(two) <--------------------- ADD THIS
  .settings(
    inThisBuild(List(
      organization := "com.example",
      scalaVersion := "2.12.7",
      version      := "0.1.0-SNAPSHOT"
    )),
    name := "one",
    libraryDependencies += scalaTest % Test
  )

...但它不起作用:

92-168-1-4:one doug$ sbt run
[info] Loading settings for project global-plugins from idea.sbt ...
[info] Loading global plugins from /Users/doug/.sbt/1.0/plugins
[info] Loading project definition from /Users/doug/tmp/one/project
[info] Compiling 1 Scala source to /Users/doug/tmp/one/project/target/scala-2.12/sbt-1.0/classes ...
[info] Done compiling.
[info] Loading settings for project root from build.sbt ...
[info] Loading project definition from /Users/doug/tmp/two/project
[info] Loading settings for project root from build.sbt ...
[error] java.lang.RuntimeException: No project 'two' in 'file:/Users/doug/tmp/two/'.
[error] Valid project IDs: root
[error]     at scala.sys.package$.error(package.scala:26)

“[错误]有效项目 ID:root”是什么意思?

我这样做完全错误吗?应该例如。正在使用sbt publishLocal或者其他的东西?

我找不到任何有意义的文档来说明您应该如何使用本地库not当前项目的子模块;我错过了 sbt 文档的一部分吗?

该部分关于Inter-project dependencies in 1.x 文档 https://www.scala-sbt.org/1.x/docs/sbt-reference.pdf似乎根本没有解释这一点,它只是谈论跟踪引用......

help?


完整的错误消息是:

No project 'two' in 'file:/Users/doug/tmp/two/'.
Valid project IDs: root
at scala.sys.package$.error(package.scala:26)

所以问题是你的文件夹two不包含名为的项目two,但只有一个名为root(由 g8 模板创建)。请注意,name := …这里并不重要,这只设置项目元数据中的名称,而不是 sbt 本身用来引用项目的名称。

要继续,您可以尝试:

  • 改变lazy val root into lazy val two in the two/build.sbt file
  • 改变ProjectRef(…, "two") into ProjectRef(…, "root")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目? 的相关文章

  • scala sbt 在多项目上测试运行设置和清理命令一次

    我知道我可以通过修改 testOptions 在 sbt 中添加设置和清理代码以用于测试阶段 例如 val embedMongoTestSettings Seq Setting Seq testOptions in Test Tests S
  • Scala 中使用转义特殊字符解码字符串问题

    我有一个多行 JSON 文件 其中包含编码为十六进制的特殊字符的记录 以下是单个 JSON 记录的示例 x22value x22 x22 xC4 xB1arines Bint xC4 xB1 xC3 xA7 Ramu xC3 xA7lar
  • 简单的 Scala actor 问题

    我确信这是一个非常简单的问题 但很不好意思地说我无法理解它 我有一个 Scala 值列表 我想使用演员来并行地对每个值进行一些 外部 调用 我想等到所有值都已处理完毕 然后继续 没有共享值被修改 有人可以建议吗 Thanks Scala 中
  • 将 Scala Dataframe 写入 CSV 文件时应用 UTF8 编码

    在 Spark2 Scala 中将数据帧写入 CSV 文件时如何正确应用 UTF8 编码 我正在使用这个 df repartition 1 write mode SaveMode Overwrite format csv option he
  • IntelliJ IDEA Scala 插件问题

    我对新的 Intellij IDEA 10 和 Scala 插件有疑问 当我在 Scala 源文件中输入任何内容时 编辑器会永久冻结 在其他文件 java 和其他 编辑器中效果很好 结构视图 scala 检查和显示成员功能已关闭 堆大小增加
  • Scala 性能问题

    In the 丹尼尔 科泽夸 Daniel Korzekwa 撰写的文章 http blog danmachine com 2011 01 moving from java to scala one year html 他说以下代码的性能
  • 哪些 ORM 与 Scala 配合得很好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Spark RDD默认分区数

    版本 Spark 1 6 2 Scala 2 10 我正在执行以下命令spark shell 我试图查看 Spark 默认创建的分区数量 val rdd1 sc parallelize 1 to 10 println rdd1 getNum
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • 对于空列表,max() 应该返回什么?

    Got java util NoSuchElementException head of empty list所以我试着检查一下 但现在我明白了 info max of a few numbers FAILED info 0 did not
  • 宏:knownDirectSubclasses 被嵌套类型破坏?

    我有一个宏 它枚举密封特征的直接子类型 import scala reflect macros Context import language experimental macros object Checker def apply A U
  • 了解 Scala 中的中缀方法调用和缺点运算符(::)

    我对 Scala 编程语言相当陌生 当我遵循以下网站的讲义时 我正在尝试一些萦绕在我脑海中的东西 here http horstmann com sjsu cs152 04 closures1 html 我想我无法真正理解 cons 运算符
  • SBT、Jetty 和 Servlet 3.0

    我有一个非常小的问题 我有以下 build sbt 文件 name Tueet libraryDependencies org eclipse jetty jetty webapp 8 1 2 v20120308 调用 sbt update
  • Scala 相当于 Java 的 Number

    我正在尝试为数值域类型构建类型层次结构 例如AYear is an Int 这是一个Number a Percentage is a Double 这是一个Number等等 我需要层次结构以便我可以调用toInt or toDouble关于
  • 如何发现 Scala 远程 Actor 已死亡?

    在 Scala 中 当另一个 远程 actor 终止时 可以通过设置 trapExit 标志并以第二个 actor 作为参数调用 link 方法来通知一个 actor 在这种情况下 当远程参与者通过调用 exit 结束其工作时 第一个参与者
  • 如何捕获 Oozie Spark 输出

    有没有办法捕获spark的输出然后将其输入到shell上 我们当前正在使用 scala 创建 jar 文件 并希望我们的 Spark 输出成为 shell 输入 我的想法是使用 wf actionData spark XXXX var 我只
  • 为什么《Scala 中的函数式编程》一书的“无异常处理错误”一章中没有提到“scala.util.Try”?

    在 Scala 中的函数式编程 一书中的 无异常处理错误 一章中 作者给出 从函数体抛出异常的问题 Use Option如果我们不关心实际的异常 Use Either如果我们关心实际的异常 But scala util Try没有提到 从我
  • Scala 模式匹配变量绑定

    为什么提取器返回时不能以 样式绑定变量Option
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将

随机推荐

  • 通过单击按钮更改 PHP include ("link.php")

    如何通过单击按钮更改 PHP include link html BUTTON 1 change to BUTTON 2 change to BUTTON 3 change to 如何在不刷新页面的情况下执行此操作 使用ajax Wrap
  • 关闭特定url上的AngularJS窗口

    我是 angularjs 的新手 所以这个问题对于经验者来说可能看起来很愚蠢 但我真的无法执行此操作 任何人都可以告诉我如何在到达特定网址后从 webview 返回到应用程序 就像我正在打开一个浏览器中的窗口用于支付过程 所以我需要的是 当
  • Rstudio 更有意义的窗口标题

    我在 Ubuntu 16 04 下使用 R studio 版本 1 0 143 窗口标题仅显示一个非常无信息的 RStudio 我希望至少有当前选项卡的名称 或者最好是与此选项卡对应的文件的完整路径 在 Windows 下 完整路径似乎出现
  • 安装失败,消息为 null - Genymotion 错误

    我是 Android 编程新手 仍在学习基础知识 我已经安装了 Android Studio 和 Genymotion 如提供的教程中所述 当我使用捆绑的模拟器运行 Android 应用程序时 一切工作正常 但是 使用 Genymotion
  • 如何在 devserver 上使用 Oauth 测试 Cloud Endpoints

    我的应用程序使用 Oauthed Cloud Endpoints 并且在生产中运行良好 我的问题是 在本地开发服务器上 我的 User 用户始终设置为 电子邮件受保护 cdn cgi l email protection 即使我已经完成了通
  • 使用 offsets_for_times 从时间戳消费

    尝试使用 confluence kafka AvroConsumer 来消费给定时间戳的消息 if flag creating a list topic partitons to search list map lambda p Topic
  • DOS批处理命令一次处理1个文件

    我正在尝试执行一项特定任务 其中需要从可能包含未定义数量的文件的文件夹中读取文件 一次一个 我需要能够将文件夹中的第一个文件移动到新位置 然后使用另一个批处理文件执行另一个任务 主要目的是一次读取一个文件 而不是执行将读取所有文件的 立刻
  • 字符串被两个不同的分隔符分割

    我有这样的字符串 some dasd dasd dasdas dasdas dasd das dsad 我需要用两个不同的符号将字符串拆分为数组 and 所以我想得到数组 some dasd dasd dasdas dasdas dasd
  • 就绪探测失败:超时:1秒内无法连接服务“:8080”

    我正在尝试使用 minikube 构建微服务映像并将其部署到在我的开发计算机上运行的单节点 Kubernetes 集群 我正在使用 Google 的云原生微服务演示应用程序 Online Boutique 来了解 Kubernetes Is
  • VS Code 多行搜索和替换 HTML / XML 标签? [复制]

    这个问题在这里已经有答案了 如何搜索可能包含多个非空行的开始和结束标记
  • “forms.ContactForm 对象”没有属性“hidden_​​tag”

    我正在尝试使用 Flask 创建联系表单 但在渲染页面时不断收到此错误 forms ContactForm object has no attribute hidden tag 这是我的文件 联系方式 html extends layout
  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • 在 List ForEach() 中设置多个属性?

    给定一个类 class foo public string a public int b 0 然后是它们的通用列表 var list new List
  • 自动调整所有列的大小以适合内容

    我所有的搜索结果都是sizeColumnsToFit and autoSizeColumns这不是我想要的 我的网格有很多列 所以它水平滚动 这很好 但我无法提前知道一列中最宽的文本所需的最大空间是多少 因此希望网格自动调整所有列的大小以适
  • 在非 Angular 类中获取注入的依赖项

    我有当前的 和简化的 课程 export class NavigationItem constructor private router Router navigateTo this router navigate this id 我不想每
  • 使用 Visual Studio 2015 在防火墙后面使用 npm

    我尝试利用 Visual Studio 2015 中新的 npm 支持 但遇到了一些问题 我位于公司防火墙后面 我尝试从 package json 文件中添加 grunt 并且可以看到与 npm 相关的输出 npm http GET htt
  • 将文本保留在 TextView 中,drawableLeft 居中

    在我的应用程序中 我有一个标题栏 其中包含一个宽度为 fill parent 的文本视图 它具有特定的背景颜色和一些居中的文本 现在我想在标题栏的左侧添加一个drawable 所以我设置了drawableLeft 果然文本和图像都显示出来了
  • R 因子变量之间的相关性

    我想知道是否有一种简单的方法来识别与另一个变量 100 相关的特征 因子变量 因此 在示例中 该过程将匹配 颜色 和 车辆 以及 植物 和 高度 color lt c black black blue blue yellow vehicle
  • 了解 Oracle Apex_Application.G_Fnn 以及如何使用它

    我对 Oracle apex application gfnn 的工作原理以及它是否仅适用于 Oracle ApEx 中的标准 SQL 报告或仅适用于 SQL 可更新报告 即表格形式 感到非常困惑 基本上我试图使用这个示例 SQL 来实现以
  • 如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目?

    其他答案中有很多含糊不清的内容 或者涉及到更旧版本的 sbt 即 0 12 x 但似乎没有人真正回答这个问题 鉴于我有一个文件夹 并且我已经运行 sbt new scala scala seed g8 name Scala Seed Pro