Ich entwickle mehrere Module mit Abhängigkeiten zwischen ihnen und möchte mit ihnen alle zusammen in einem IDEA-Projekt arbeiten. Ich verwende sbt-idea , um IDEA-Projekte aus den sbt-Build-Definitionen zu generieren, was für einzelne Projekte hervorragend funktioniert. Im Fall mit mehreren Modulen funktionieren die Dinge, die ich bisher ausprobiert habe, jedoch nicht ganz:
Verwenden Sie sbt-idea, um für jedes Modul unabhängig eine IDEA-IML-Datei zu generieren . Erstellen Sie dann ein Master-IDEA-Projekt von Grund auf neu und fügen Sie diese Module hinzu. Dadurch können die Modulquellen alle im selben Fenster bearbeitet werden, aber die Abhängigkeiten zwischen ihnen werden nicht nachverfolgt. Wenn ich also versuche, von einer Quelle innerhalb des foo- Projekts zu etwas in der Leiste zu navigieren, gehe ich zur importierten Bibliotheksversion der Leiste , nicht zu den lokalen Quellen ).
Verwenden Sie sbt - Multiprojekt -Builds (auch als Unterprojekte bezeichnet) , wobei die Build.scala des übergeordneten Projekts Folgendes enthält:
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
Dies funktioniert fast, da sbt-idea ein Master-IDEA-Projekt mit den Abhängigkeiten zwischen den verfolgten Teilprojekten generiert. Es gibt jedoch zwei Einschränkungen:
- Es scheint eine sbt-Einschränkung zu sein, dass die Teilprojekte in Unterverzeichnissen des Masterprojekts gespeichert werden müssen (dh
file("../foo")
nicht zulässig sind). Dies ist nicht wirklich das, was ich will (was ist, wenn ein Modul - wie ein "utils" - oder "commons" -Paket - in zwei verschiedenen Masterprojekten verwendet wird?), Aber ich kann damit leben. - Eines meiner Teilprojekte hat seine eigenen Teilprojekte; Ich bin nicht sicher, ob sbt selbst mit diesen verschachtelten Projekten richtig umgeht, aber auf jeden Fall werden sie von sbt-idea ignoriert. Natürlich brauche ich verschachtelte Teilprojekte, um rekursiv in das Masterprojekt aufgenommen zu werden.
Zusammenfassend: Ich möchte Module, die möglicherweise bereits Teilprojekte enthalten, in einem großen IDEA-Projekt mit nachverfolgten Abhängigkeiten für eine bequeme Bearbeitung sammeln . Wie kann ich es tun? Vielen Dank!