Windows上设置Leiningen

Leiningen是用来构建Clojure项目的build工具, 我的第一印象是非常难用, 也不能说是难用, 就是很难跑起来, 第一次用的时候折腾了好长时间, 加上平时都是直接在REPL里面做实验, 也没有发布像样的library, 因此平时基本只是使用lein deps来获取依赖的jar文件.

这次因为实在是需要build一个项目specter snapshot, 因为不是稳定版, 找不到相应的jar, 只能直接从源码项目进行构建, 所以又试了一次.

这个工具最大的问题是他要从bat脚本中下载一个文件, 其实就是lein jar 主包. 但是因为种种原因, 总是下不下来.

从BAT脚本可以看到, 他首先会构建一个URL类似于

 
https://github.com/downloads/technomancy/leiningen/leiningen-2.7.0-standalone.jar
 

然后分别尝试用wget, curl, powershell来下载, 指望其中任何一个成功.

问题在于, 首先很多用户没有安装这些工具, 其次即使安装了这些工具, 也不能保证下载成功, 因为url是https的, 所以如果没有配置好, 那么wget会出现certificate的问题, 再一个, 这个URL有时候会出错, 有时候是过期的URL. 最大的问题还是企图在BAT脚本里面下载一个体积不算小的文件, 而且还要动用一堆根本无法保证的第三方依赖. 就因为一个文件无法下载, 而且你也知道这个文件就存在于某个地方, 从而卡在那里不能前进, 这种感觉非常糟糕.

当然也有简单的方法, 不过要稍微的去读一下BAT脚本, 本来是不想关心这个脚本细节的, 但是没办法. 最后发现其实根本不需要这么多麻烦事. 下面是简单的流程.

下载最新的lein.bat, 去官网下. 文件的开头找到版本声明, 如下

 
set LEIN_VERSION=2.7.0
 

然后搜索"leiningen 2.7.0", 一般第一个或者第二个结果就可以找到, 或者直接去链接

 
https://github.com/technomancy/leiningen/releases
 

找到名为"leiningen-2.7.0-standalone.zip"的下载链接并下载下来, 任何下载工具都可以, 迅雷之类的, 非常快. 下载后重命名并保存为

 
C:\app\leiningen-2.7.0-SNAPSHOT-standalone.jar
 

在LEIN_VERION的下面加一句

 
set LEIN_JAR=C:\app\leiningen-2.7.0-SNAPSHOT-standalone.jar
 

然后就可以了, 进入含有project.clj的根目录, 执行lein jar会构建并打包项目为jar, lein repl会进入REPL模式.