Dune 是 OCaml 的建置系統。它提供一致的體驗並處理 OCaml 編譯的低階細節。您只需提供項目的描述,Dune 將完成剩下的工作。
Dune 實施的方案受到 Jane Street 內部使用的方案的啟發,並適應了開源世界。它已經成熟了很長時間,每天都有數百名開發人員使用,這意味著它經過了高度的測試和效率。
沙丘附帶一本手冊。如果您想在不閱讀太多內容的情況下開始使用,請查看快速入門指南或觀看此介紹影片。
範例目錄包含使用 Dune 的專案範例。
Dune 從dune
檔案中讀取項目元數據,這些檔案是具有簡單 S 表達式語法的靜態檔案。它使用這些資訊來設定建置規則,為 Merlin 等開發工具產生設定文件,處理安裝等。
Dune 本身速度很快,開銷很小,並且支援所有平台上的並行建置。它沒有系統依賴性。 OCaml 是您使用 Dune 建立 Dune 和套件所需的一切。
特別是,可以使用二進位安裝程式在 Windows 上安裝 OCaml,然後僅使用 Windows 控制台來建置 Dune 和使用 Dune 的套件。
Dune 是可組合的,這意味著多個 Dune 專案可以安排在一起,從而形成 Dune 知道如何執行的單一建置。這允許項目的單一儲存庫。
Dune 讓多個套件的同時開發成為一項微不足道的任務。
Dune 知道如何處理包含多個套件的儲存庫。透過 opam 建置時,它能夠正確使用先前安裝的庫,即使它們已經存在於原始程式碼樹中。
魔法調用是:
$ dune build --only-packages < package-name > @install
Dune 可以同時針對多個配置建立給定的原始碼儲存庫。這有助於跨多個 OCaml 版本維護包,因為您可以輕鬆地一次測試它們。
特別是,這使得處理交叉編譯變得容易。此功能需要 opam。
Dune 需要 OCaml 版本 4.08.0 來建構自身,並且可以使用 OCaml 4.02.3 或更高版本來建立 OCaml 專案。
我們建議透過 opam 套件管理器安裝 Dune:
$ opam install dune
如果您是 opam 的新手,請確保執行eval $(opam config env)
以使dune
在您的PATH
中可用。 dune
二進位檔案是獨立且可重定位的,因此您可以安全地將其複製到其他位置以使其永久可用。
您也可以使用以下命令手動建立它:
$ make release
$ make install
如果您沒有make
,您可以執行以下操作:
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
第一個命令建置dune.exe
二進位檔。第二個建立由 Dune 安裝的附加文件,例如手冊頁,最後一個只是將所有這些文件安裝到系統上。
請注意:除非您執行可選的./configure
腳本,否則您只需將dune.exe
複製到任何地方即可執行。 dune
是完全可重定位的,並在運行時發現其環境,而不是在編譯時對其進行硬編碼。
如果您對 Dune 有任何疑問或問題,可以在我們的 GitHub 討論頁面中提問或在 GitHub 上提交票證。