【问题标题】:sbt: can i put the source of scala compiler plugin into a project that needs to be compiled using that plugin?sbt:我可以将 scala 编译器插件的源代码放入需要使用该插件编译的项目中吗?
【发布时间】:2011-08-31 11:45:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

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

    【讨论】:

    • 我认为您可能将 sbt 插件与 scalac 插件混淆了。
    【解决方案2】:

    这是一个使用 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
      )
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2021-05-22
      • 2015-11-24
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多