我有一个sbt(0.13.1)项目,包含一些子项目。我正在使用eclipse生成sbteclipse项目配置。我的项目只有scala源文件,所以我想删除生成的src / java文件夹。
我可以通过(冗余地)将以下内容添加到每个子项目的build.sbt来实现:
unmanagedSourceDirectories in Compile := (scalaSource in Compile).value :: Nil
unmanagedSourceDirectories in Test := (scalaSource in Test).value :: Nil
我尝试将上述配置添加到root build.sbt,但eclipse
命令仍然生成了java源文件夹。
有没有办法指定一次这样的配置(在root build.sbt中)并让它流向每个子项目?
答案 0 :(得分: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)
)
}
中创建插件的更多详细信息