2015-12-29 43 views
1

关于编写sbt项目的问题: 我分叉了一个图书馆项目(https://github.com/allenai/pipeline),并希望对我的项目使用它进行破解。如果我将它们放在同一个多项目构建中 - 实际上,我的首选选项超出本地发布和消费 - sbt不会读取嵌套叉的目录(其中.scala文件和插件定义最初驻留的目录)。 例如我试试,build.sbt:你如何将sbt项目合并到一个构建中?

lazy val pipeline = (project in file("pipeline")) 

lazy val githubCruncher = (project in file(".")) 
    .dependsOn(pipeline) 

而且我得到的是被忽略指示目录pipeline/project错误;嵌套项目build.sbt本身正在被读取,但sbt没有在它的兄弟project目录中找到与其并排定义的内容(因此无法加载构建定义)。

因此,我必须将这两个项目压缩到一个单独的build.sbt或者我可以以某种方式优雅地组成这两个项目吗?我在问,因为这也是我工作的其他项目中的一个问题,我最终将每个构建定义细节压缩成一个庞大的庞然大物 - 尽管我希望将一些子项目作为独立项目分配给我,自己的开发配置。

回答

1

根据我的经验看起来像里面的一切项目的project目录被拉成多项目构建 - 需要移动到project根多项目构建的下,而拉的build.sbt -in项目没有被压扁 - 从顶层build.sbt对它的引用将工作(除非引用在顶层build.sbt随后定义为它在那里)。

来自拉入式项目的Sbt插件随后将应用到统一的多项目构建中,并且需要在其他子项目(如果或适当或需要)上禁用disablePlugins

+0

也可能http://storm-enroute.com/mecha/下一次考虑周围,或稍差的情况具体[本地外部项目的工作流程(http://code.technically.us/post/9545154150/local -external项目功能于SBT) – matanster

相关问题