Scala 如何在sbt子项目构建文件中启用插件?

Scala 如何在sbt子项目构建文件中启用插件?,scala,sbt,Scala,Sbt,如何在sbt子项目构建文件中启用插件?我知道如何在主build.sbt文件中执行此操作 因此,考虑下面的项目结构 root/ app1 build.sbt project src/ app2 build.sbt project src/ build.sbt project 因此,我的root/build.sbt类似于: lazy val commonSettings = Seq( organization := "com.so

如何在sbt子项目构建文件中启用插件?我知道如何在主build.sbt文件中执行此操作

因此,考虑下面的项目结构

root/
  app1
    build.sbt
    project
    src/
  app2
    build.sbt
    project
    src/
  build.sbt
  project
因此,我的root/build.sbt类似于:

lazy val commonSettings = Seq(
  organization := "com.someorg",
  version := "0.1.0",
  scalaVersion := "2.11.7"
)

lazy val app1 = (project in file("app1")).
  //enablePlugins(Plugin1,Plugin2).  I WANT TO ENABLE THIS IN app1/build.sbt
  settings(commonSettings: _*).
  settings(name := "app1")

lazy val app2 = (project in file("app2")).
  //enablePlugins(Plugin1,Plugin2). I WANT TO ENABLE THIS IN app2/build.sbt
  settings(commonSettings: _*).
  settings(name := "app2")

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "aaaMain"
  ).
  aggregate(app1,app2).
  dependsOn(app1,app2)
libraryDependencies ++= Seq(
  dependency1,
  dependency2
)
当前我的app1/build.sbt类似于:

lazy val commonSettings = Seq(
  organization := "com.someorg",
  version := "0.1.0",
  scalaVersion := "2.11.7"
)

lazy val app1 = (project in file("app1")).
  //enablePlugins(Plugin1,Plugin2).  I WANT TO ENABLE THIS IN app1/build.sbt
  settings(commonSettings: _*).
  settings(name := "app1")

lazy val app2 = (project in file("app2")).
  //enablePlugins(Plugin1,Plugin2). I WANT TO ENABLE THIS IN app2/build.sbt
  settings(commonSettings: _*).
  settings(name := "app2")

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "aaaMain"
  ).
  aggregate(app1,app2).
  dependsOn(app1,app2)
libraryDependencies ++= Seq(
  dependency1,
  dependency2
)

如何在app1/build.sbt内部启用Plugin1和Plugin2?

只需直接在
app1/build.sbt中添加
启用插件(Plugin1,Plugin2)

Intellij可能会将其标记为语法错误,但它在从终端编译时编译并工作正常



感谢@sjrd在这方面的帮助。

我认为使用最新版本的sbt(>=0.13.7IIRC),您只需在
app1/build.sbt
中编写一行
enablePlugins(Plugin1,Plugin2)
。你不能吗?谢谢@sjrd!成功了。出于某种原因,intellij认为按照您建议的方式启用插件是一种语法错误。但是我能够从终端成功编译。这种技术也适用于主项目中的补充SBT文件。例如,我可以通过添加两个文件将插件添加到现有项目中,而无需修改现有版本。我添加了
project/buildinfo.sbt
只包含
addSbtPlugin(“com.eed3si9n”%”sbt buildinfo“%”“0.6.1”)
buildinfo.sbt
包含
enablePlugins(BuildInfoPlugin)
以及所需的buildinfo sbt定义。我不清楚如何使用指令
enablePlugins启用插件(Plugin1,Plugin2)
无声明说明。