加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – SBT:依赖于其他没有出版的SBT项目

发布时间:2020-12-16 09:15:49 所属栏目:安全 来源:网络整理
导读:我有一组松散相关的组件,其中一些依赖于其他组件.为了具体化,假设我们有组件“common”,“a”和“b”. “common”没有任何依赖关系,但所有其他项目都使用“common”.此外,“a”取决于“b”.所有组件都用 Scala编写,我想使用sbt来构建它们. 以下属性将很好:
我有一组松散相关的组件,其中一些依赖于其他组件.为了具体化,假设我们有组件“common”,“a”和“b”. “common”没有任何依赖关系,但所有其他项目都使用“common”.此外,“a”取决于“b”.所有组件都用 Scala编写,我想使用sbt来构建它们.

以下属性将很好:

>多个人在不同的项目上工作,这就是为什么我们不想拥有一个存储库,而是一个项目的一个存储库.
>构建项目应该很简单,所有的依赖项都应该自动构建(如有必要).也就是说,如果我修改“common”然后构建“b”,那么应该首先构建“common”,然后继续构建“b”.
>能够将所有项目都集成到IDE中,以使重构和类似IDE任务正常工作,并且所有受影响的项目都会正确更改.

据我所见,在sbt中有这样的依赖的两种可能性:要么我们使用子项目,要么使用托管依赖关系(例如在本地推送).然而,似乎这两个选项都不提供上述(1)或(2).尤其是

>使用子项目迫使我们使用单个存储库,因为所有子项目必须位于主项目的子目录中.
>在本地发布项目并使用受管理的依赖关系是麻烦的,因为更改“常见”,然后构建“b”仅在该项目建立并发布之前才会选择“常见”中的更改.我可以看到,受管理的依赖关系在许多情况下都是有用的,但对于我们特定的用例来说,它们看起来并不顺利.我们经常在几个项目上工作,同时改变它们.因此,不得不出版通常似乎过于复杂.

真的没有办法说一个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")

要么

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

我正在努力与这个我自己 – 目前我使用的发布本地方法是正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读