如何打包leiningen项目进行重新编译,包括所有库? [对于没有互联网连接的用户]

时间:2014-05-01 10:10:05

标签: maven clojure libraries leiningen

我正在举办一个Clojure研讨会,我希望人们能够修改和重新编译Clojure项目。挑战在于他们不会有互联网连接 - 所以我需要一次性给他们项目和图书馆。

我如何打包leiningen项目以重新编译包含所有库?

假设

  • 他们在研讨会之前在他们的机器上安装了leiningen。

EDIT 这与如何打包maven项目进行重新编译所包含的所有库几乎是同一个问题? [没有互联网连接]

1 个答案:

答案 0 :(得分:4)

将〜/ .m2目录移到一边。运行您希望用户运行的所有lein x leiningen命令,还可以构建和测试项目(测试,安装,jar,uberjar等)。这将为Leiningen本身以及您的项目下载(大量)依赖项。 $HOME/.m2是您可以找到Maven依赖项解析程序下拉的所有jar文件的地方。

完成此操作后,将:offline? true添加到project.clj,根据文档,这将Prevent Leiningen from checking the network for dependencies.

有关将.m2目录移到一边的替代方法,请参阅Maven - alternative .m2 directory

为了方便学生使用,最好使用整个.m2目录,项目和Leiningen本身以及基本安装程序(bash脚本或批处理文件)创建一个独立的zip存档。将.m2目录移动或符号链接到适当的位置,并将lein脚本添加到路径中。这种方法应该满足离线需求 - 我认为它涵盖了您需要的所有依赖项。

我假设你的学生将安装java并将其放在PATH上。预先运行您希望使用的所有lein命令非常重要,因为它们中的一些具有自己的依赖关系,只有在首次运行时才会解析。