clj-nix 使用教程
clj-nixNix helpers for Clojure projects项目地址:https://gitcode.com/gh_mirrors/cl/clj-nix
1. 项目介绍
clj-nix
是一个旨在减少 Clojure 和 Nix 之间摩擦的项目。Nix 是一个强大的工具,用于构建和部署软件,但 Clojure 在 Nix 生态系统中的支持并不完善。clj-nix
通过提供 Nix 辅助工具来与 Clojure 项目交互,试图改善这一情况。
2. 项目快速启动
安装 Nix
首先,确保你已经安装了 Nix。你可以通过以下命令安装 Nix:
sh <(curl -L https://nixos.org/nix/install) --daemon
克隆项目
克隆 clj-nix
项目到本地:
git clone https://github.com/jlesquembre/clj-nix.git
cd clj-nix
生成锁文件
clj-nix
提供了一种从 deps.edn
文件创建锁文件的方法。创建锁文件是使用 clj-nix
提供的 Nix 辅助工具的前提。
nix run github:jlesquembre/clj-nix#deps-lock
构建项目
使用 Nix 构建你的 Clojure 项目:
nix build
3. 应用案例和最佳实践
创建二进制文件
clj-nix
可以帮助你从 Clojure 应用程序创建二进制文件:
{ clj-nix }:
clj-nix.mkCljBin {
depsLock = ./deps.lock;
main-ns = "my-app.core";
}
创建优化的 JDK 运行时
clj-nix
还可以创建一个优化的 JDK 运行时来执行 Clojure 二进制文件:
{ clj-nix }:
clj-nix.mkJdk {
cljBin = ./result;
}
创建 GraalVM 本地镜像
clj-nix
支持从 Clojure 应用程序创建 GraalVM 本地镜像:
{ clj-nix }:
clj-nix.mkGraalBin {
depsLock = ./deps.lock;
main-ns = "my-app.core";
}
4. 典型生态项目
dwn
dwn
是一个与 clj-nix
类似的工具,用于将 Maven 依赖转换为 Nix 表达式。
mvn2nix
mvn2nix
是另一个工具,用于将 Maven 项目转换为 Nix 表达式。
clojure-nix-locker
clojure-nix-locker
是一个用于锁定 Clojure 依赖的工具,与 clj-nix
结合使用可以更好地管理依赖。
通过以上步骤和示例,你可以快速上手并使用 clj-nix
来构建和部署你的 Clojure 项目。希望这些内容对你有所帮助!
clj-nixNix helpers for Clojure projects项目地址:https://gitcode.com/gh_mirrors/cl/clj-nix