Mit Typesafe Config ' s ConfigFactory zu set-Taste-Einstellung in build.sbt?

sbt.version=0.13.1

In build.sbt ich bin die Zuordnung einer Einstellung-Taste, durch Aufruf ein Stück von meinem Projekt Abhängigkeit der code, der wiederum konfiguriert sich selbst über Typesafe Config ' s ConfigFactory. Meine Abhängigkeit hat sich ein reference.conf im root von der jar, und mein Projekt selbst enthält ein überwiegendes application.conf im src/main/resources.

Lib/Abhängigkeit ist auch mein code, btw.

import com.mylib.Finders
import com.myproj.sbt.Keys._

projKeyColorSetting in Compile := Finders.findColor //this calls ConfigFactory.load

seq(projSettings:_*)

Dem bauen gar nicht geladen, weil Sie nicht finden können, das erste conf key-ich versuche, die Referenz in meinem lib-code.

Habe ich versucht eine Reihe von Kombinationen von scoping-und Classpath-manipulation in meinem build-Datei, aber ohne Erfolg. Ich nahm an, dass die jar ' s reference.conf gewesen wäre, auf die Compile Bereich classpath, aber es funktioniert nicht so wie ich erwarten.

Verbrachte ich die Mehrheit der gestern brütete über SBT-Dokumentation auf Classpath, Bereiche, Tasten, Aufgaben und ResourceGenerators - meine Absicht ist, führen Sie eine benutzerdefinierte Plug-in, das sich auf die projKeyColorSetting Einstellung in build.sbt wie folgt:

lazy val projSettings = inConfig(Compile) {
    Seq(
        resourceGenerators in Compile <+= Def.task {
            val fileCreated = createColorFile(projKeyColorSetting.value)
            Seq(fileCreated)
        }
    )
 }
was nicht mir klar, hier ist, wie com.myproj.app.Foo bekam auf der sbt classpath in den ersten Platz - Klassen kompiliert aus src/main/scala sind nicht automatisch verfügbar, im Aufbau.sbt-es sei denn, Sie haben etwas zur Verfügung zu stellen - Sie brauchen, um zu tun, die gleiche Sache mit src/main/resources ? Die build-code (build.sbt) in der Regel nicht über die app s-Klassen zur Verfügung.
Dank Havoc - ich habe versucht, übermäßig vereinfachen mein Beispiel, und aktualisiert Sie entsprechend mehr, wer mein build vorhanden ist. Ich bin mir nicht aufrufen-Projekt Anwendungs-code in build.sbt, aber code von einem meiner Abhängigkeit (die ich auch Steuern). Ich möchte Lesen, meine Projekt-Konfiguration unter src/main/resources, die allerdings nicht auf dem default-Classpath, als haben Sie mir bestätigt. Was ich wissen möchte ist: 1. Warum meine Abhängigkeit ist Referenz.conf nicht gefunden wird, und 2. Wie hinzufügen src/main/resources im Rahmen der mein-Einstellung der Tastenbelegung-oder plugin-vielen Dank für Ihre Antwort.
Lesen Sie auch die Reihenfolge, in der die Werte für die Konfiguration überschrieben werden: github.com/typesafehub/config#standard-behavior

InformationsquelleAutor bloo | 2014-03-26

Schreibe einen Kommentar