Ich habe ein Projekt läuft einfach gebaut Werkzeug als Bauwerkzeug. Alle meine Unterprojekte teilen die gleichen Abhängigkeiten, deshalb möchte ich, dass sie den gleichen lib Ordner benutzen. Ich könnte dies tun, indem ich symbolische Links zu meinem freigegebenen lib-Ordner erstelle, aber ich hoffe, eine Konfiguration in sbt zu finden, die mich zum Pfad meiner Bibliotheken wechseln lässt.Wie teile ich meinen lib-Ordner in Teilprojekten von Simple Build Tool
override def dependencyPath = ".."/"lib"
nicht funktioniert, ".." in Pfade nicht erlaubt ist
class Top(info:ProjectInfo) extends ParentProject(info){
lazy val subproject = project("sub","Sub Project",info => SubProject(info,dependencyPath)
class SubProject extends DefaultProject(info:ProjectInfo,libdir:Path){
override def dependencyPath = libdir
}
}
nicht funktioniert, ist dependencyPath ein Projekt relativen Pfad
dependencyPath.absolutePath
funktioniert auch nicht, weil absolutePath erstellt einen String mit Schrägstrichen, und Pfade können nicht aus Strings mit Schrägstrichen erstellt werden.
danke, aber es ist nicht so einfach. Mein lib-Ordner enthält einige native Bibliotheken, die ich manuell in den Klassenpfad setzen muss. Das bedeutet, dass mein Programm ein Fork-Lauf des Projekts mit einem überschriebenen runJVMOptions sein muss. In Teilprojekten ist der Pfad nicht mehr korrekt, da sie aus einem anderen Ordner rumspielen. – Arne
Es funktioniert für mich. Hier ist eine Arbeitsprojektdefinition, die Sie in der Lage sein sollten, sich an Ihr Problem anzupassen: http://gist.github.com/657060 – Moritz