我正在举办一个Clojure研讨会,我希望人们能够修改和重新编译Clojure项目。挑战在于他们不会有互联网连接 - 所以我需要一次性给他们项目和图书馆。
我如何打包leiningen项目以重新编译包含所有库?
假设
EDIT 这与如何打包maven项目进行重新编译所包含的所有库几乎是同一个问题? [没有互联网连接]
答案 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命令非常重要,因为它们中的一些具有自己的依赖关系,只有在首次运行时才会解析。