SBT:依赖其他SBT项目而不发布

2024-01-27

我有一组松散相关的组件,其中一些组件依赖于其他组件。为了具体起见,我们假设我们有组件“common”、“a”和“b”。 “common”没有任何依赖项,但所有其他项目都使用“common”。此外,“a”依赖于“b”。所有组件都是用 Scala 编写的,我想使用 sbt 来构建它们。

最好具有以下属性:

  1. 多个人从事不同的项目,这就是为什么我们不希望有一个存储库,而是每个项目有一个存储库。
  2. 构建项目应该很容易,并且所有依赖项都应该自动构建(如果需要)。也就是说,如果我修改“common”然后构建“b”,则应该首先构建“common”,然后继续构建“b”。
  3. 能够将所有项目都放在 IDE 中,以便重构和类似的 IDE 任务可以正常工作,并且所有受影响的项目都可以正确更改。

据我所知,在 sbt 中存在这种依赖关系有两种可能性;我们要么使用子项目,要么使用托管依赖项(被推送到某个地方,例如本地)。然而,这两个选项似乎都不提供上述(1)或(2)。尤其

  • 使用子项目迫使我们使用单个存储库,因为所有子项目都必须位于主项目的子目录中。
  • 在本地发布项目并使用托管依赖项很麻烦,因为如果先构建并发布该项目,则更改“common”然后构建“b”只会拾取“common”中的更改。我可以看到托管依赖项在许多情况下都很有用,但对于我们的特定用例,它们似乎效果不佳。我们经常处理多个项目并同时更改它们。因此,发布往往显得过于复杂。

难道真的没有办法说一个 sbt 项目依赖于某个(相对)位置的另一个 sbt 项目,并且让 sbt 弄清楚何时构建依赖关系吗?


通过 SBT,您可以使用源依赖项。

lazy val root = Project("root", file("."), settings = ...) dependsOn(dispatchLiftJson)

lazy val dispatchLiftJson = uri("git://github.com/dispatch/dispatch-lift-json#0.1.0")

在本例中它将从 git 获取。尽管我找不到示例,但您也许可以指定磁盘上的文件位置。可能

lazy val dep = file("/path/to") 

or

lazy val dep = uri("file:///path/to")

我自己正在努力解决这个问题 - 目前我正在使用工作正常的发布本地方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SBT:依赖其他SBT项目而不发布 的相关文章

  • 如何在不从 DataFrame 转换并访问它的情况下向数据集添加列?

    我知道使用以下方法将新列添加到 Spark 数据集的方法 withColumn and a UDF 它返回一个 DataFrame 我还知道 我们可以将生成的 DataFrame 转换为 DataSet 我的问题是 如果我们仍然遵循传统的
  • 如何在 Lift 框架中添加新页面

    如何在 lift 中的 webapp 目录中添加一个可供用户访问的新页面 目前只能通过index html访问http localhost 8080 com http localhost 8080 or http localhost 808
  • Scala 的“神奇”函数列表

    在哪里可以找到 Scala 的 神奇 函数列表 例如apply unapply update etc 魔法函数是指编译器的某些语法糖使用的函数 例如 o update x y lt gt o x y 我用谷歌搜索了一些组合scala mag
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 如何使用 Scala 从 Spark 更新 ORC Hive 表

    我想更新 orc 格式的 hive 表 我可以从 ambari hive 视图进行更新 但无法从 sacla spark shell 运行相同的更新语句 objHiveContext sql select from table name 能
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • Scala 为了在 JVM 上运行做出了哪些妥协?

    Scala 是一种很棒的语言 但我想知道如果它有自己的运行时 如何改进 IE 由于 JVM 的选择 做出了哪些设计选择 我所知道的两个最重要的妥协是 类型擦除 http java sun com docs books tutorial ja
  • Spark:导入UTF-8编码的文本文件

    我正在尝试处理一个包含很多特殊字符的文件 例如德语变音符号 o 等 如下所示 sc hadoopConfiguration set textinputformat record delimiter r n r n sc textFile f
  • Scala 中的条件未来

    给定这两个 future 仅当条件为真时我才需要运行第一个 future 请参阅if y gt 2 但我有一个例外Future filter predicate is not satisfied 这是什么意思以及如何修复该示例 object
  • scala 如何对元组进行排序?

    我试图了解 scala 如何处理元组的排序和排序 例如 如果我得到了列表 val l for i lt 1 to 5 yield i i 2 Vector 1 2 2 4 3 6 4 8 5 10 scala 知道如何对其进行排序 l so
  • 对于 Scala,“无全局类型推断”是什么意思?

    我读过 Scala 的类型推断不是全局的 因此人们必须在方法上放置类型注释 这会是 本地 类型推断吗 我只知道一点点 原因是它面向对象的本质 但我不清楚 是否有 全局类型推断 的解释以及为什么 Scala 不能让初学者可以理解 The pr
  • 将 Scala Future 转变为 CompletableFuture

    我的项目中有一个 Akka 层 它返回Scala Future 而接收 Future 的部分是 Java 风格的 团队中的人不了解 Scala 他们宁愿使用CompletableFuture因为他们更了解 Java 8 API 有没有什么好
  • Scala [2.11.6] 编译 Stackoverflow 错误(似乎对迄今为止发现的建议有抵抗力)

    scala版本 2 11 6 我当然尝试过clean很多次以及update 不确定是否有clean deeper刷新 jar 库 真正奇怪的是 这种情况同时发生在两台机器上 其中一台在没有执行任何特殊操作的情况下恢复了 而另一台仍然没有恢复
  • 无法证明与路径相关类型的等价性

    为什么最后一个summon编译失败 我该怎么做才能让它编译 import java time LocalDateTime LocalTime trait Circular T type Parent given localTimeCircu
  • 使用 Apache Commons lineIterator 时出现 OutOfMemory 错误

    我正在尝试使用 Apache Commons 逐行迭代 1 2GB 文件FileUtils lineIterator 然而 一旦LineIterator calls hasNext 我得到一个java lang OutOfMemoryErr
  • 强制类型差异

    在 Scala 中 我可以在编译时强制执行类型相等 例如 case class Foo A B a A b B implicit ev A B scala gt Foo 1 2 res3 Foo Int Int Foo 1 2 scala
  • 如何将 csv 文件读取为键值对的映射

    我的 csv 文件中有数据 例如 value key A Name B Name C Name 24 Age 25 Age 20 Age M Gender F Gender 我想解析它以生成以下地图 Map Name gt List A B
  • Scala UpperBound 和 LowerBound 概念

    下面是我尝试运行的代码 class Student def printDetails println I am a student def printSomeOtherDetails println I love Studying clas
  • 由于 UTFDataFormatException 导致 Spark 中的任务无法序列化:编码字符串太长

    我在 Yarn 上运行 Spark 应用程序时遇到一些问题 我有非常广泛的集成测试 运行时没有任何问题 但是当我在 YARN 上运行应用程序时 它将抛出以下错误 17 01 06 11 22 23 ERROR yarn Applicatio
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件

随机推荐

  • 在 Windows 7 上执行 Fabric python 代码

    我正在尝试导入 Fabric 以用于我的 Python 版本 3 3 代码如下 fabfile py from fabric api import def hello print Hello world 但是在执行 C gt fab hel
  • Python - 检查类是否存在

    有没有办法检查类是否已定义 存在 我的菜单上有不同的选项 其中一些需要继承变量 因此如果您在设置变量之前尝试选择该函数 它会崩溃 我的课程名为 Gen0 我通过简单地输入 class Gen0 接下来是设置变量的其余代码 对于上下文 我正在
  • Reset_cooldown Discord.py

    我对discord py 和Python 都很陌生 但我正在努力学习 我不知道如何将 command reset cooldown 添加到我的代码中 正如下面代码中所说 我希望 test 忽略冷却时间 但我希望 test 2 有冷却时间 有
  • Spring Boot 中的 JAX-RS 和 MVC

    我有一个作为 MVC 工作的 Spring Boot 应用程序 我想在我的应用程序中使用 JAX RS 而不使用 Spring 注释 我将在不同的类中同时拥有 JAX RS 带注释的组件和 MVC 组件 当我添加 Jersey 资源配置时
  • Boost Container向量可以通过非原始指针管理内存吗?

    我有一个类似指针的结构来代替指针 与指针的区别在于它具有额外的信息 也是特殊的 分配器可以用来释放内存 这种类似指针的结构适用于所有基本用途 我可以分配和释放内存 解引用 增量 gt etc 现在我想使用这个指针来由类似STL的容器来管理
  • 邮递员到普罗米修斯和马车“\r”?第 1 行中的文本格式解析错误:预期浮点数作为值,得到“1\r”

    只是试图通过邮递员向普罗米修斯添加新的指标 但是得到 第 1 行中的文本格式解析错误 预期浮点数作为值 得到 1 r 度量就像 test metric 1 不带引号 为什么会发生这种情况以及如何将其从邮递员的请求中删除 原因在于之间的差异
  • 这里使用指针向量是不必要的还是更糟,会导致内存泄漏?

    我对 C 编程相对较新 但我是一名有 10 年经验的 C 程序员 因此我对对象的指针比对对象的引用更熟悉 我正在编写一款纸牌游戏 这种设计不安全吗 有没有更好的办法 无论如何 我还有课SolitaireGame class Solitair
  • 如何动态获取程序集名称[重复]

    这个问题在这里已经有答案了 我在图书馆里有一堂课是这样的 namespace Foo public abstract class EventBase public string EventSource gt Assembly GetExec
  • IE9 中的 iframe 中未发送 Cookie

    首先 我在发布这个问题之前做了一些研究 所以我知道P3P政策 https stackoverflow com questions 389456 cookie blocked not saved in iframe in internet e
  • php 多个 if 语句?

    抱歉 这看起来像是一个菜鸟问题 今天早上我的大脑无法运转 我正在尝试执行多个if声明 但他们的行为不正确 在找到它正在寻找的模板后 它似乎总是加载最少的模板 做这样的事情的最好方法是什么 post wp query gt post if i
  • 如何用Python中的其他字符替换字符串中的unicode字符?

    我有一个从阅读带有项目符号的 HTML 网页中获得的字符串 由于项目符号列表 这些项目符号具有类似 的符号 请注意 文本是来自使用 Python 2 7 的网页的 HTML 源代码urllib2 read webaddress 我知道项目符
  • 将物理网卡绑定到docker容器

    我的主机 PC 上安装了 4 个 NIC 我想启动不同的 docker 容器 并将不同的物理网卡绑定到每个容器 我能为docker做些什么 对于 VirtualBox 这可以通过为物理网卡的每个虚拟机创建桥接适配器来完成 当您使用 Dock
  • 版权元标记在 HTML5 中有效吗?

    W3C 验证器输出 第 5 行 第 41 列 元素元上的属性名称版权值错误 未注册关键字版权 我需要设置版权 任何想法 都柏林核心提出rightsHolder https www dublincore org specifications
  • 了解接口内部接口(嵌入式接口)

    我试图用以下代码来理解接口嵌入 我有以下内容 type MyprojectV1alpha1Interface interface RESTClient rest Interface SamplesGetter SamplesGetter h
  • 仅 CSS 3D 旋转文本

    我有一个带有一些文本旋转的 div 如何获得文本深度以提供更好的 3D 效果 为了澄清 在90deg文本变成1px厚 因为我们只能从侧面看到它 我该如何制作它 例如 10px厚的 此外 应显示适当的深度 即在0deg我们看不到深度 在45d
  • 在用户可见活动后执行方法

    我的活动包含太多 UI 控件 我想在使活动可见后执行一个方法 我尝试过的一个例子 public class Main extends Activity Override public void onCreate Bundle savedIn
  • Android 画布保存总是 java.io.IOException: 打开失败: ENOENT (没有这样的文件或目录)

    我有一个画布应用程序 我正在尝试创建一个签名应用程序Canvas onTouchListener 这是我的保存方法 我尝试将签名保存到图像中 private void save hideMenuBar View content this c
  • Travis 尝试将应用提交到 Google Play 商店时出错

    我首先研究了在 Github 上找到的几个要点 https gist github com lpetre 87a5196d14cf4484f1f2 https gist github com lpetre 87a5196d14cf4484f
  • sphinx4 中的语音识别响应很差

    目前我们正在研究使用 sphinx4 进行语音识别 我们正在努力为听写类型应用程序取得良好的响应 输入是一个 wav 文件 我们希望转录它 我研究了 Sphinx4 提供的 LatticeDemo 和 Transscriber 演示 当我使
  • SBT:依赖其他SBT项目而不发布

    我有一组松散相关的组件 其中一些组件依赖于其他组件 为了具体起见 我们假设我们有组件 common a 和 b common 没有任何依赖项 但所有其他项目都使用 common 此外 a 依赖于 b 所有组件都是用 Scala 编写的 我想