sbt:我可以将scala编译器插件的源代码放入需要使用该插件编译的项目中吗?

时间:2011-05-23 21:29:30

标签: scala sbt

我正在编写自己的scala编译器插件并使用sbt来构建项目。是否可以将该插件的源代码放在需要使用该插件编译的同一个项目中?

关于sbt的所有文档似乎都与使用项目外部的插件有关。如果它们在同一个项目中,那么测试插件似乎要容易得多。否则我必须不断构建插件,将该jar复制到主项目,然后编译它。

我阅读的文档位于http://code.google.com/p/simple-build-tool/wiki/CompilerPlugins

2 个答案:

答案 0 :(得分:4)

以下是使用SBT 0.13的示例:

 object PluginBuild extends Build {

  def buildSettings = Seq(
    name := "test-compiler-plugin",
    scalaVersion := "2.10.3"
  )

  override def settings = super.settings ++ buildSettings

  lazy val codeToBeChecked = project.in(file("code-to-be-checked")).
    settings(
      scalacOptions += "-Xplugin:" + packageBin.in(Compile).in(thePlugin).value
    )

  lazy val thePlugin = project.in(file("the-plugin")).settings(
    libraryDependencies += "org.scala-lang" % "scala-compiler"  % scalaVersion.value
  )
}

答案 1 :(得分:0)

我不知道你在做什么,但也许是你正在寻找的项目/ plugins / src_managed / diriectory。如果插件的用户需要插件中的一些代码,可以在那里找到它。