zoukankan      html  css  js  c++  java
  • 用leiningen来运行和打包clojure项目

    今天是2017年5月24日。隔壁team用clojure写了个工具,我们要拿来用,于是弄了个leiningen来尝试。还没有最后成功,先记录一下一些连蒙带猜的步骤,以免忘记。

    一、单独运行的clojure

    关于clojure是什么东西就自行百度了,简单说就是用Lisp语言写的程序,编译成.class放在jvm上面跑,所以是需要jre的。独立的clojure可以从官方网站找到,目前稳定版本是1.8,官网https://clojure.org/index。下载后是一个zip,里面有个jar是clojure-1.8.0.jar,可以像常用的jar那样运行,这样会得到一个REPL交互环境,当然需要预先配置好jre(java8)。

    https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0.zip

    二、安装leiningen

    这个是clojure上类似maven的东西。貌似它本质上就是整合了maven,会用到maven在当前用户下的配置文件,但应该不需要maven本身。安装和运行Leiningen也不需要预先安装clojure本身。官网 https://leiningen.org/,上面有安装方法,就是通过一个script(lein for linux,或者lein.bat for win)来安装和运行。

    1. 用lein.bat self-install,安装出错,原因是无法下载lein它本身的jar。我在公司用代理,所以需要设置代理服务器。可以在lein script的最前面加上例如export HTTPS_PROXY=http://Username/Password@proxyserver:port的格式。

    2. 如果仍然无法下载,可以尝试直接从leiningen的github那里下载,https://github.com/technomancy/leiningen/releases,目前有2.7.1版本,下载到的是一个zip,可以改后缀名为jar,然后按照message的提示,放到对应的位置,例如 c:/Users/abc/.lein/self-installs/leiningen-2.7.1-standalone.jar。也可以修改lein script内部查到jar的位置的变量,来指向这个jar。script内原文是这样的:

    通过修改LEIN_HOME,来指向特定目录,例如 export LEIN_HOME="${LEIN_HOME:-"/home/test01/lein"}"。如有需要,再修改LEIN_JAR的指向,或者按照它的目录名来放置lein的jar。这样lein script就不会再尝试联网下载了。

    三、运行和打包lein项目

    由于实际项目中,都要用到第三方包,所以依赖关系的处理就无法避免了。用lein来运行和打包项目,就跟maven的道理一样。测试中遇到问题,就是jre链接不上lein的官方仓库clojars,提示SSL认证问题。这时可以用浏览器打开它的主页,保存网站的证书为cer文件,然后添加到jre的lib/security/cacerts文件中,这个是jre的默认证书仓库。具体步骤参考java的keytool的用法。

    如果是在project.clj文件中指定了私有仓库,并且需要登录的,可以在project.clj对应的那个repository后面加上username和password,例如下面的配置。可以参照官方的例子 https://github.com/technomancy/leiningen/blob/stable/sample.project.clj,里面有注释提及。

    ["repo-releases" {:url "http://blueant.com/archiva/internal"

                              :username "abcd"

                              :password "1234"}]

    而lein的几个简单用法如下:

    lein repl:打开REPL环境。

    lein run:运行项目。

    lein uberjar:打包项目,包含依赖项。得到jar后就跟平常的jar没有区别了。

  • 相关阅读:
    8皇后问题
    求1到n,n个整数的全排列
    求最小周期串
    如何用java完成一个中文词频统计程序
    蛇形矩阵
    第一个算法程序
    java 继承练习题8
    java 继承练习题7
    java 继承练习题6
    java 继承练习题5
  • 原文地址:https://www.cnblogs.com/pekkle/p/6901764.html
Copyright © 2011-2022 走看看