この質問はここ に対する私の回答に従って、GitHubプロジェクトを依存関係として取り込むようにSBT(0.11.0)を構成しました。
更新されたときにSBTにGit依存関係を再コンパイルさせることができないように見えることを除いて、正常に動作します。つまり、依存関係を更新した場合、GitにプッシュしてプロジェクトのSBTをリロードしてpackage
を実行すると、SBTはプロジェクトのコンパイル時に外部Git依存関係を再コンパイルしません。
Git依存関係(たとえば、forcenew
)に新しいブランチを作成し、これを使用するようにSBTプロジェクト構成のブランチを更新しようとしました。
lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#forcenew"))
しかし、これでも更新は強制されません。私は少し困惑しています-SBTがGitプロジェクトをコンパイルする場所を見つけることさえできません(それは~/.sbt/
または~/.ivy2/
にないようです)...
どんな助けも大歓迎です!
差出人: https://github.com/sbt/sbt/issues/335
これは0.12.0で修正する必要があります。「sbt update」を呼び出すだけです。
0.12.0で修正されたため、sbt update
で十分です ただし、13.0に戻りました -今のところ、~/.sbt/staging/
から依存関係を手動で消去する必要があります
~/.sbt/staging/
を清算したい可能性があります
Build.sbtに追加できる簡単なハック:
def removegit = Command.command("removegit"){state =>
val home = sys.env("HOME")
val k = ("rm -rf "+ home + "/.sbt/0.13/staging/").!
state
}
commands ++= Seq(removegit)
そして、sbt removegit
はそのディレクトリをワイプします。これは、コミットのチェックのような賢いことは何もしません。これは素晴らしいアップグレードになります...リポジトリは私のマシンの~/.sbt/0.13/staging/
に保存されているので、調整する必要があるかもしれません。