2017-10-13 1 views
0

Meine Probe sbt Plugin Zugriff kompiliert mit scala Version 2.10.6 in Ordnung. Ich versuche scalaVersion: = "2.11.7" im sbt-Plugin build.sbt zu aktualisieren.abhängig (nicht Kind) Projekte in sbt-Plugin mit scala Version 2.11.7

Es bricht mit dem followinng CTE: -

/Users/mogli/gitrepos/study/SbtPlugins/ScalaPlugin/src/main/scala/base/BasePlugin.scala:21: kann nicht erweitern Makros, die von früheren Versionen von Scala zusammengestellt [Fehler]
val Projekten = thisProject.value.dependencies

Dies funktioniert gut mit scalaVersion: = "2.10.6" von Micro Dotta in Frage unten vorgeschlagen: -

accessing dependent (not child) projects in sbt plugin

Vereinfachte sbt Plugin BasePlugin.scala:

package base 

import sbt.{ThisBuild, Def, TaskKey, AutoPlugin} 
import sbt._ 
import Keys._ 


object BasePlugin extends AutoPlugin { 

    object autoImport { 
    lazy val customtask: TaskKey[Unit] = TaskKey("customtask") 
    } 

    import autoImport.customtask 


    override def projectSettings: Seq[Def.Setting[_]] = Seq(
    customtask := { 
     val projects = thisProject.value.dependencies 
     projects map println 
    } 
) 
} 

Wie es mit scalaVersion bekommen arbeiten: = "2.11.7"? Ich möchte dieses Plugin mit Projekten verwenden, die diese scal Version 11.

Antwort

0

Versuchen verwenden:

override def projectSettings: Seq[Def.Setting[_]] = Seq(
     customtask := { 
      val projects = thisProject.value.dependencies 
      projects map println 
     }, 
     scalaVersion := "2.11.7" 
    ) 
0

SBT bauen defintions auf eine scala-Version von der SBT-Version gebunden sind sie verwenden:

  • sbt 0.12.x Definitionen erstellen und Code muss gegen scala 2.9.x kompiliert werden
  • sbt 0.13.x Definitionen erstellen und Code muss gegen scala kompiliert werden 2.10.x

seit 1.0.0 sbt gegen scala Version kompiliert 2.12 und erfordert Java 8

So

gibt es keine sbt-Version, wo sbt defintions bauen mit scala 2,11 (zumindest nicht, ohne zu riskieren Fehler kompiliert werden).

Sie können die sbt Version manipulieren Sie, indem Sie es in project/build.properties verwenden:

sbt.version=1.0.0 

Achten Sie darauf, einen aktuellen sbt Wrapper-Skript verwenden.

Verwandte Themen