Dune ist ein Build-System für OCaml. Es bietet ein konsistentes Erlebnis und kümmert sich um die Low-Level-Details der OCaml-Kompilierung. Sie müssen lediglich eine Beschreibung Ihres Projekts bereitstellen, den Rest erledigt Dune.
Dune implementiert ein Schema, das von dem in Jane Street verwendeten Schema inspiriert und an die Open-Source-Welt angepasst ist. Es ist über einen langen Zeitraum ausgereift und wird täglich von Hunderten von Entwicklern verwendet, was bedeutet, dass es hoch getestet und produktiv ist.
Dune wird mit einem Handbuch geliefert. Wenn Sie loslegen möchten, ohne viel zu lesen, schauen Sie sich die Kurzanleitung an oder schauen Sie sich dieses Einführungsvideo an.
Das Beispielverzeichnis enthält Beispiele für Projekte, die Dune verwenden.
Dune liest Projektmetadaten aus dune
-Dateien, bei denen es sich um statische Dateien mit einer einfachen S-Ausdruckssyntax handelt. Diese Informationen werden verwendet, um Build-Regeln einzurichten, Konfigurationsdateien für Entwicklungstools wie Merlin zu generieren, die Installation durchzuführen usw.
Dune selbst ist schnell, hat sehr wenig Overhead und unterstützt parallele Builds auf allen Plattformen. Es gibt keine Systemabhängigkeiten. OCaml ist alles, was Sie zum Erstellen von Dune und Paketen mit Dune benötigen.
Insbesondere kann man OCaml unter Windows mit einem Binärinstallationsprogramm installieren und dann nur die Windows-Konsole verwenden, um Dune und Pakete mit Dune zu erstellen.
Dune ist zusammensetzbar, was bedeutet, dass mehrere Dune-Projekte zusammengefügt werden können, was zu einem einzigen Build führt, den Dune ausführen kann. Dies ermöglicht Monorepos von Projekten.
Dune macht die gleichzeitige Entwicklung mehrerer Pakete zu einer trivialen Aufgabe.
Dune weiß, wie man mit Repositories umgeht, die mehrere Pakete enthalten. Beim Erstellen über opam können zuvor installierte Bibliotheken korrekt verwendet werden, auch wenn diese bereits im Quellbaum vorhanden sind.
Die magische Anrufung lautet:
$ dune build --only-packages < package-name > @install
Dune kann ein bestimmtes Quellcode-Repository für mehrere Konfigurationen gleichzeitig erstellen. Dies erleichtert die Verwaltung von Paketen über mehrere Versionen von OCaml hinweg, da Sie sie alle problemlos auf einmal testen können.
Dies erleichtert insbesondere die Handhabung der Cross-Compilation. Für diese Funktion ist Opam erforderlich.
Dune benötigt OCaml Version 4.08.0, um sich selbst zu erstellen, und kann OCaml-Projekte mit OCaml 4.02.3 oder höher erstellen.
Wir empfehlen die Installation von Dune über den opam-Paketmanager:
$ opam install dune
Wenn Sie neu bei opam sind, stellen Sie sicher, dass Sie eval $(opam config env)
ausführen, um dune
in Ihrem PATH
verfügbar zu machen. Die dune
-Binärdatei ist eigenständig und verschiebbar, sodass Sie sie sicher an einen anderen Ort kopieren können, um sie dauerhaft verfügbar zu machen.
Sie können es auch manuell erstellen mit:
$ make release
$ make install
Wenn Sie make
nicht haben, können Sie Folgendes tun:
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
Der erste Befehl erstellt die Binärdatei dune.exe
. Der zweite erstellt die von Dune installierten zusätzlichen Dateien, z. B. die Manpages , und der letzte installiert einfach alles auf dem System.
Bitte beachten Sie : Sofern Sie nicht das optionale Skript ./configure
ausgeführt haben, können Sie dune.exe
einfach an eine beliebige Stelle kopieren und es wird einfach funktionieren. dune
ist vollständig verschiebbar und erkennt seine Umgebung zur Laufzeit, anstatt sie zur Kompilierungszeit fest zu codieren.
Wenn Sie Fragen oder Probleme zu Dune haben, können Sie diese auf unserer GitHub-Diskussionsseite stellen oder ein Ticket auf GitHub eröffnen.