【问题标题】:sbt 0.11.3: getting latest version of a git pluginsbt 0.11.3:获取最新版本的 git 插件
【发布时间】:2012-11-21 20:29:57
【问题描述】:

我有一个使用 sbt 0.11.3 构建的多项目结构。我想集中我的依赖版本、项目版本、工件、shell 提示等内容。这对我的发布管理和版本控制计划非常有帮助。所以我创建了一个插件并将我的全局配置放在那里。我的项目从 github 读取它并将其构建为插件。一切都很可爱。

./project/project/Build.scala

import sbt._

object PluginDef extends Build {
    override lazy val projects = Seq(root)
    lazy val root = Project("plugins", file(".")) dependsOn(versionPlugin)
    lazy val versionPlugin = uri("git://github.com/config.git") //changed the uri here
}

所以 sbt 会获取插件的最新版本(如果还没有的话)。将该版本缓存在 ~/.sbt/staging/somehashcode 中。但是当插件项目发生变化时,我无法让它更新项目。我会在需要时手动去更新它。可悲的是,在一个 20 人的团队中,它会引起一些问题。

我们如何让它检查插件更新?

【问题讨论】:

  • 你提到离线是假的。您还提到离线是真的。问题仅针对那些将离线设置为 true 的开发人员吗?你也提到了很多“my”。您还提到了其他 20 位开发人员。团队中是否就使用您的插件达成共识?
  • 我已将该离线部分修复为 true。但再看一遍,我意识到这个提法具有误导性。删除它。

标签: scala version-control sbt


【解决方案1】:

我还没有尝试过,但以下方法可能有效。

刷新插件

  1. 更新到 sbt 0.12.1,修复了update
  2. 然后从 sbt shell:

    > reload plugins
    > update
    > reload return
    

指定一棵特定的树

在某些情况下,将源依赖关系修复到特定时间点可能会有所帮助。如果是这样,您可以将提交哈希或标记添加为"git://github.com/config.git#hash"

【讨论】:

  • 迁移到 0.12.1 是件麻烦事。我很乐意这样做,但我们的日程安排很紧(一如既往)。不过,我会建议我的上级。关于提交哈希,获取我们配置项目的最后一个提交 id 并将其作为插件检查是一个很酷的想法。
  • 或直接从 shell sbt ";reload plugins ;update ;reload return" ; sbt clean update 编译
猜你喜欢
  • 2012-08-11
  • 2010-11-15
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2011-02-25
  • 2018-05-10
  • 2017-05-15
相关资源
最近更新 更多