我有以下sbt代码在git uri上添加插件依赖项:
import sbt._
object Plugins extends Build {
lazy val username = ("git config --global user.bitbucket" !!).trim
lazy val root = Project("root", file(".")) dependsOn(
uri(s"https://$username@git-repo.org/team/build.git#build_0.1")
)
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我发现,如果我进行更改build_0.1并推送它,当我compile再次来到项目时,sbt不会提取我所做的更改,所以我有一个过时的插件.
我怎样才能让SBT始终对它依赖的依赖关系做一个git pull?
仅支持最高0.13.2-M1 的SBT 。git clonegit checkout
git clone当 URL 不包含#指向分支或提交时使用,例如
git:file:///Users/jacek/sandbox/so/sbt-git/git-repo
Run Code Online (Sandbox Code Playgroud)
git checkout#当 URL中有指向分支或提交的 URL时执行,例如
git:file:///Users/jacek/sandbox/so/sbt-git/git-repo/#a221379c7f82e5cc089cbf9347d473ef58255bb2
Run Code Online (Sandbox Code Playgroud)
当我commit对 git 存储库进行更改时,我也必须更新 中的提交哈希build.sbt,以便在 SBT 项目中引用更改(v下面的值)。
lazy val v = "a221379c7f82e5cc089cbf9347d473ef58255bb2"
lazy val g = RootProject(uri(s"git:file:///Users/jacek/sandbox/so/sbt-git/git-repo/#$v"))
lazy val root = project in file(".") dependsOn g
Run Code Online (Sandbox Code Playgroud)
随着 git 存储库中的更改,必须对 SBT 项目进行reload编辑,以便可以运行新的签出并刷新项目。
[root]> reload
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/so/sbt-git/project
Cloning into '/Users/jacek/.sbt/0.13/staging/24535507588417c1c2dc/git-repo'...
Checking connectivity... done
[info] Set current project to root (in build file:/Users/jacek/sandbox/so/sbt-git/)
[root]>
Run Code Online (Sandbox Code Playgroud)
这很痛苦,但确实有效(并且让你可以使用远程 git 存储库跟踪你所在的位置)。
您可能还会发现来自 GIT 的多项目能否用作 SBT 依赖项?有用。
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |