用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没有区别了。
用leiningen来运行和打包clojure项目的更多相关文章
- weexpack打包weex项目运行/打包记录
构建weex项目 安装weex-toolkit cnpm install -g weex-toolkit 初始化一个项目只需新建文件夹并在目录下执行 weex init 即可 安装依赖:cnpm in ...
- SpringBoot+Maven 多模块项目的构建、运行、打包
SpringBoot+Maven 多模块项目的构建.运行.打包 https://blog.csdn.net/zekeTao/article/details/79413919
- webpack打包vue项目之后生成的dist文件该怎么启动运行
亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行. 我的vue项目结构如下: 1. 进入该vue项目目录,打开git bash,执行:npm run b ...
- docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(二.docker运行jenkins为自动打包运行做准备)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- 转载 LibGDX: 使用 Gradle 命令运行和打包项目
版权声明:本文为csdn xietansheng 博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: http://blog.csdn.net/xieta ...
- 安装Node,创建vue项目,运行及打包
1.安装node js 下载地址:http://nodejs.cn/download/ 2.安装完成后运行Node.js command prompt(node -v查看安装版本) 3.安装npm(由 ...
- SpringBoot+Maven 多模块项目的构建、运行、打包实战
前言 最近在做一个很复杂的会员综合线下线上商城大型项目,单模块项目无法满足多人开发和架构,很多模块都是重复的就想到了把模块提出来,做成公共模块,基于maven的多模块项目,也好分工开发,也便于后期微服 ...
随机推荐
- 利用HttpWebRequest类Post数据至URI
在与第三方系统进行数据对接时,需要把数据post到对方提供的一个url,然后进行相关处理. 这里可利用HttpWebRequest类,该类位于System.Net命名空间下.它提供了一些属性和方法可以 ...
- easyui-dialog 弹窗
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Linux:SSH免密码登录
1.使用包管理器安装openssh: 本人的系统是Arch Linux,因此安装命令为:sudo pacman -S openssh 2.使用ssh-keygen命令创建公钥: #ssh-keygen ...
- 类的 where T : class 泛型类型约束
where T : struct | T必须是一个结构类型where T : class T必须是一个类(class)类型where T : new() | T必须要有一个无参构造函数where T ...
- quartz 使用配置文件配置线程数
quartz默认的线程数是10个,如果我们要修改这个线程数需要做一个配置文件,在配置文件内修改线程. 一共需要2个操作: 1.找到quartz的XML配置文件,设置加载配置文件(配置文件存放在weba ...
- sql server 简单语句整合
1.去重distinct , group by select distinct userid,username from 表名 select userid,username from 表名 group ...
- Socket网络通讯
网络编程 使用C#进行网络编程时,通常都需要用到System.Net命名空间.System.Net.Sockets命名空间和System.Net.Mail命名空间: 1. System.Net命名空间 ...
- Linux下启动Tomcat项目
在Linux下启动Tomcat项目方法:将war包放进Tomcat的wabapp目录下,进入tomcat目中的bin目录中,运行命令./startup.sh 回车就可以了
- JavaScript随机数组(数组、随机、取整、取值的过程)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- 如何理解java采用Unicode编码
http://blog.csdn.net/gjb724332682/article/details/43229563 Java中字符仅以一种形式存在,那就是Unicode.由于java采用unicod ...