2017-02-16 10 views
0

SBTには、プロジェクト依存関係を管理する機能があり、既存のgithubプロジェクトを直接参照することができます。SBTは起動時にカスタムタスクを実行します

既存のバグが原因残念ながら
val projectA = RootProject(uri("git://github.com/....")) 
    val projectB = Project("projectB", file(".")) dependsOn(project) 

、 - 依存プロジェクト(PROJECTA)の変更は、あなたがsbt updateを呼び出す場合でも、この依存関係を使用するプロジェクト(ProjectBの)には反映されません。

https://github.com/sbt/sbt/issues/1284

彼らはすぐにそれを修正するようにそれは見えません。

しかし、回避策があります: How do I refresh updated Git dependency artifacts in SBT? ~/.sbt/staging/助けを取り外し。明らかに、この削除は、プロジェクトの読み込みの初期段階で行われるはずです。

私は削除のための簡単なタスクを作成し、それをupdateタスクへの依存として定義しましたが、それは遅すぎると思われ、期待どおりに動作しません。

[info] Loading project definition from projectB 
// next 4 stages are skipped if it's already cloned. 
// Cloning into ... projectA 
// [info] Loading project definition from projectA 
// [info] Updating projectA 
// [info] Done updating. 
[info] Updating projectB <<<--- where the removal is happening, too late... 

私が頼りにできる仕事は何ですか?

答えて

0

知っているように、私は以下の解決策を見つけました。 私はちょうど私のbuild.sbt方法を定義した、それが空Seqを返し、必要に応じて削除を実行し、私は設定が定義されているプロジェクト定義、直接それを呼び出すよ:、

lazy val commonSettings = doRemove ++ Seq(... other settings. 

間違いなく非ベストプラクティスのアプローチが、仕事をします。

関連する問題