scala – 如何在SBT(Play)多项目中使用共享配置?
我有几个SBT 0.13 / Play 2.2项目(网站).它们都是多模块,因为它们共享一些共同的功能.这使得他们的项目配置文件既复杂又几乎相同,但并不完全相同.
我希望能够在项目中尽可能多地共享这些配置文件(频繁的播放更新使得5个网站最新成为皇家的痛苦,更不用说所有几乎完全相同但不断发展的依赖列表了.项目). build.properties和plugins.sbt在各个项目中是相同的,可以通过简单的脚本覆盖.大. Build.scala比较棘手 – 我想介绍一个像这样的共享基类: abstract class MyBuildBase extends Build { ... } 在Build.scala中: object ApplicationBuild extends MyBuildBuild { ... } 为了使其具有任何意义,需要跨项目共享MyBuildBase.scala.这可以通过svn:external来完成,它在目录上运行.这意味着我需要在编译Build.scala时以某种方式使这个共享目录可访问(否则sbt会大声抱怨). 阅读http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html和http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full-Def.html似乎应该是可能的. 但是,我真的不清楚在项目/项目/ Build.scala文件中实际放入什么来实际实现这一点 – 我找不到一个“sbt构建文件的示例”,该文件旨在构建一个sbt构建文件并包含构建中的一些额外的源文件“. 有什么建议? 解决方法
您可能想要做的是创建一个插件或共享库.
您可以使用如下构建创建一个sbt项目: build.sbt sbtPlugin := true organization := "you" name := "common-build" version := "1.0" 然后在src / main / scala中创建抽象类“MyBuildBase”.将此项目作为sbt插件发布. 然后在您的其他项目中,您可以将其用作库/插件.在project / plugins.sbt中添加: addSbtPlugin("you" % "common-build" % "1.0") 这将在构建构建时解析您的公共构建库. 如果您需要更多信息,请查看有关sbt插件的更多信息,并忽略有关制作扩展插件的内容的部分.插件只是使用sbt版本号和您自己的版本编写的库.您应该能够在那里放置您想要的任何代码以在构建之间共享. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |