Gewusst wie: hinzufügen "zur Verfügung gestellt" Abhängigkeiten zurück zu laufen/test-tasks " classpath?

Hier ist ein Beispiel build.sbt:

import AssemblyKeys._

assemblySettings

buildInfoSettings

net.virtualvoid.sbt.graph.Plugin.graphSettings

name := "scala-app-template"

version := "0.1"

scalaVersion := "2.9.3"

val FunnyRuntime = config("funnyruntime") extend(Compile)

libraryDependencies += "org.spark-project" %% "spark-core" % "0.7.3" % "provided"

sourceGenerators in Compile <+= buildInfo

buildInfoPackage := "com.psnively"

buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, target)

assembleArtifact in packageScala := false

val root = project.in(file(".")).
  configs(FunnyRuntime).
  settings(inConfig(FunnyRuntime)(Classpaths.configSettings ++ baseAssemblySettings ++ Seq(
    libraryDependencies += "org.spark-project" %% "spark-core" % "0.7.3" % "funnyruntime"
  )): _*)

Ziel ist die spark-core "provided" so es und seine Abhängigkeiten sind nicht in der assembly enthalten Artefakt, sondern reinclude Sie auf dem runtime classpath für die run- und testAufgaben.

Scheint es, dass die Verwendung eines benutzerdefinierten Bereichs wird letztlich hilfreich sein, aber ich bin gehemmt, wie Sie tatsächlich dazu führen, dass die default/global run/test-Aufgaben zu verwenden, die benutzerdefinierte libraryDependencies und hoffentlich, überschreiben die Standardeinstellung. Ich habe versucht Dinge, einschließlich:

(run in Global) := (run in FunnyRuntime)

und dergleichen ohne Erfolg.

Zusammenfassen: das kommt im wesentlichen eine Verallgemeinerung der web-Fall, in dem die servlet-api ist im "vorgesehenen" Rahmen, und führen/test-Aufgaben in der Regel Gabel ein servlet-container, der bietet wirklich das servlet-api zum ausführen von code. Der einzige Unterschied hier ist, dass ich nicht die Verzweigung aus einer separaten JVM/Umwelt; ich will nur manuell ergänzen die Aufgaben " klassenpfade, effektiv "rückgängig machen" der "vorgesehenen" Rahmen, aber in einer Weise, dass weiterhin auszuschließen, die Abhängigkeit von der Montage-Artefakt.

Ich brauche nicht zu "add-back" - '" - Abhängigkeiten für die Ausführung mit sbt ausführen oder intellij. Check this out: github.com/dportabella/spark-examples

InformationsquelleAutor user2785627 | 2013-09-16

Schreibe einen Kommentar