2

我有一个带有一堆子项目的 sbt (0.13.1) 项目我正在使用项目配置。我的项目只有源文件,所以我想删除生成的 src/java 文件夹。

我可以通过(冗余)将以下内容添加到每个子项目的 build.sbt 中来实现:

unmanagedSourceDirectories in Compile := (scalaSource in Compile).value :: Nil

unmanagedSourceDirectories in Test := (scalaSource in Test).value :: Nil

我尝试将上述配置添加到根 build.sbt 但该eclipse命令仍然生成了 java 源文件夹。

有没有办法指定一次这样的配置(在根 build.sbt 中)并让它流向每个子项目?

4

1 回答 1

0

您可以定义无范围的设置,然后重用它们

val onlyScalaSources = Seq(
  unmanagedSourceDirectories in Compile := Seq((scalaSource in Compile).value),
  unmanagedSourceDirectories in Test := Seq((scalaSource in Test).value)
)

val project1 = project.in( file( "project1" )
  .settings(onlyScalaSources: _*)

val project2 = project.in( file( "project2" )
  .settings(onlyScalaSources: _*)

您还可以创建一个简单的插件(未经测试的代码)

object OnlyScalaSources extends AutoPlugin {
  override def trigger = allRequirements
  override lazy val projectSettings = Seq(
    unmanagedSourceDirectories in Compile := Seq((scalaSource in Compile).value),
    unmanagedSourceDirectories in Test := Seq((scalaSource in Test).value)
  )
}

有关在插件文档中创建插件的更多详细信息

于 2014-11-09T22:33:26.463 回答