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

scala – 如何在SBT(Play)多项目中使用共享配置?

发布时间:2020-12-16 09:54:34 所属栏目:安全 来源:网络整理
导读:我有几个SBT 0.13 / Play 2.2项目(网站).它们都是多模块,因为它们共享一些共同的功能.这使得他们的项目配置文件既复杂又几乎相同,但并不完全相同. 我希望能够在项目中尽可能多地共享这些配置文件(频繁的播放更新使得5个网站最新成为皇家的痛苦,更不用说所有
我有几个SBT 0.13 / Play 2.2项目(网站).它们都是多模块,因为它们共享一些共同的功能.这使得他们的项目配置文件既复杂又几乎相同,但并不完全相同.

我希望能够在项目中尽可能多地共享这些配置文件(频繁的播放更新使得5个网站最新成为皇家的痛苦,更不用说所有几乎完全相同但不断发展的依赖列表了.项目).

build.properties和plugins.sbt在各个项目中是相同的,可以通过简单的脚本覆盖.大.

Build.scala比较棘手 – 我想介绍一个像这样的共享基类:

abstract class MyBuildBase extends Build { ... }

在Build.scala中:

object ApplicationBuild extends MyBuildBuild { ... }

为了使其具有任何意义,需要跨项目共享MyBuildBase.scala.这可以通过svn:external来完成,它在目录上运行.这意味着我需要在编译Build.scala时以某种方式使这个共享目录可访问(否则sbt会大声抱怨).

阅读http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html和http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full-Def.html似乎应该是可能的.

但是,我真的不清楚在项目/项目/ Build.scala文件中实际放入什么来实际实现这一点 – 我找不到一个“sbt构建文件的示例”,该文件旨在构建一个sbt构建文件并包含构建中的一些额外的源文件“.

有什么建议?

解决方法

您可能想要做的是创建一个插件或共享库.

您可以使用如下构建创建一个sbt项目:

build.sbt

sbtPlugin := true

organization := "you"

name := "common-build"

version := "1.0"

然后在src / main / scala中创建抽象类“MyBuildBase”.将此项目作为sbt插件发布.

然后在您的其他项目中,您可以将其用作库/插件.在project / plugins.sbt中添加:

addSbtPlugin("you" % "common-build" % "1.0")

这将在构建构建时解析您的公共构建库.

如果您需要更多信息,请查看有关sbt插件的更多信息,并忽略有关制作扩展插件的内容的部分.插件只是使用sbt版本号和您自己的版本编写的库.您应该能够在那里放置您想要的任何代码以在构建之间共享.

(编辑:李大同)

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

    推荐文章
      热点阅读