Pro SBT documentation, "Ein Projekt wird durch Deklarieren einer verzögerten Wert vom Typ Projekt definiert."Warum werden SBT-Projekte als Lazy Vals deklariert?
Das ist sicherlich die Norm, und was wir tun, aber ich frage mich, was, wenn überhaupt, der Grund ist, dass es faul sein muss.
Mit einem normalen val
anstelle von lazy val
scheint zu arbeiten. Natürlich führt die Verwendung von strikten Vals dazu, dass die Projektdefinitionen der Reihe nach initialisiert werden, was bedeutet, dass Vorwärtsreferenzen nicht funktionieren und Projekte in Abhängigkeitsreihenfolge definiert werden müssen.
Für einen relativ großen Build, mit 53 voneinander abhängigen Projekten, ist die Reihenfolge, die erzwungen wird, tatsächlich ein Good Thing ™, also habe ich mich gefragt, ob es einen wirklichen Grund gibt, lazy val zu verwenden - abgesehen davon, dass Definitionen in beliebiger Reihenfolge vorkommen dürfen.