2013-06-24 4 views
5

Ich möchte der Einstellung "viewedSources" ein Verzeichnis hinzufügen, um eine Erstellungsaufgabe auszulösen, wenn ich eine Datei in diesem Verzeichnis speichere.Anhängen eines Verzeichnisses an Überwachungsquellen in SBT-Einstellungen

override def baseProject = play.Project(
    moduleName, 
    moduleVersion, 
    dependencies = libraries, 
    path = file(location), 
    settings = moduleSettings ++ Seq(
    watchSources <++= baseDirectory map { dir => 
     Seq(
     dir/"src/main/javascript" 
    ) 
    } 
) 
) 

Ich kann nicht scheinen, um die folgenden Fehler zu erhalten:

type mismatch; 
[error] found : sbt.Project.Initialize[ScalaObject with Equals] 
[error] required: sbt.Project.Initialize[sbt.Task[?]] 
[error] Note: ScalaObject with Equals >: sbt.Task[?], but trait Initialize is invariant in type T. 
[error] You may wish to define T as -T instead. (SLS 4.5) 
[error]  watchSources <++= baseDirectory { f => 
[error]         ^
[error] one error found 
[error] (compile:compile) Compilation failed 
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? 

Wie anfügen ich eine Folge von Dateien auf das Ergebnis der Aufgabe sah Quellen?

Antwort

4
 watchSources <++= baseDirectory map { path => ((path/"src/main/webapp/coffee") ** "*.coffee").get } 
2

Ich hatte ein sehr ähnliches Problem mit meinem Play-Projekt; Ich möchte SBT public/js sowie test/js (die Jasmine Tests enthält), für Änderungen an allen JavaScript-Dateien zu sehen.

Die Lösung ist eine SBT Path Finder Ausdruck zu verwenden, um die Stellen zu benennen, wie folgt:

val main = play.Project(appName, appVersion, appDependencies, settings = Defaults.defaultSettings ++ buildInfoSettings ++ scctSettings).settings(
testOptions in Test += Tests.Argument("junitxml", "console"), 
unmanagedResources in Compile ++= (file("public/js") ** "*.js").get, 
unmanagedResources in Test ++= (file("test/js") ** "*.js").get, 
... 

Der Path Finder dieses Bit: (file("public/js") ** "*.js") - und ruft get auf sie ein Seq[File] zurückgibt, die wir dem hinzufügen unmanagedResources (die Quellen beobachtet werden, in Betracht gezogen, aber nicht Scala, die ideal ist)