0
SBT具有管理项目依赖项的功能,您可以在其中直接引用现有的github项目。SBT在启动时执行自定义任务
val projectA = RootProject(uri("git://github.com/...."))
val projectB = Project("projectB", file(".")) dependsOn(project)
不幸的是,由于现有错误 - 在相关项目(了projectA)的任何更改将不会反映在使用这种依赖关系(项目B),即使你叫sbt update
项目。
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...
我可以依赖的任务是什么?