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

scala – SBT常用构建设置

发布时间:2020-12-16 08:53:56 所属栏目:安全 来源:网络整理
导读:我有多个SBT项目都有一个共同的设置 – 例如多模块,发布设置等 我如何提供例如每个项目都可以从中扩展的CommonBuild类?例如: trait CommonBuild { val publishSettings = Seq( publishTo := Some("",""),credentials += ... ) def module(name: String) (
我有多个SBT项目都有一个共同的设置 – 例如多模块,发布设置等

我如何提供例如每个项目都可以从中扩展的CommonBuild类?例如:

trait CommonBuild {
  val publishSettings = Seq(
    publishTo := Some("",""),credentials += ...
  )

  def module(name: String) (
    settings: Seq[Setting[_]],projectId: String = PROJECT + "-" + name,dirName: String = name,srcPath: String = PROJECT + name
    ) = Project(projectId,file(dirName),settings = (buildSettings ++ srcPathSetting(projectId,srcPath)) ++ publishSettings ++ settings)

}

现在它可以被项目构建使用:

object ProjABuild extends CommonBuild {
   // use CommonBuild methods / vals
}

object ProjBBuild extends CommonBuild {
   // use CommonBuild methods / vals
}

解决方法

我也想这样做.重要的是,通用设置需要存在于子项目所依赖的项目中,以便对公共设置所做的更改自动在所有子项目中生效.实现此目的的唯一方法是将常用内容放入SBT插件中.

我写了一个名为iesl-sbt-base的插件.它提供了一堆样板文件,因此项目的Build.scala文件可以简单地缩短.它提供:

>解析器配置
>通过自动更新简化依赖关系解析
>明确使用的传递依赖性
>快照版本的可选保护
>清理日志配置

有关详细信息,请参阅https://github.com/iesl/iesl-sbt-base.您可能希望分叉以更改特定于我的设置的内容(例如,特别是解析程序URL).如果有需求,我可以考虑如何使其更具可配置性.

(编辑:李大同)

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

    推荐文章
      热点阅读