用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的多模块项目,也好分工开发,也便于后期微服 ...
随机推荐
- Hyperledger Fabric1.0 整体结构
整体结构 Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分: fabric-peer:主要起到 peer 作用,包括 endorser.committer 两种角色: fab ...
- 事物处理service层的方法
package cn.lijun.service; import java.sql.Connection;import java.sql.SQLException; import cn.lijun.d ...
- BZOJ 3083 遥远的国度(树链剖分+LCA)
Description 描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度.当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcwwzdjn的去路,他需要z ...
- xampp本地服务器+HBuilder配置php环境
HBuilder配置PHP环境: 下载,运行HBuilder编辑器 打开右侧小窗口,点击设置图标—>设置web服务器—>外置web服务器 输入你想要浏 ...
- canvas基本绘制图形
canvas H5新增的元素,提供了强大的图形的绘制,变换,图片,视频的处理等等.需要使用JavaScript脚本操作 浏览器支持 大多数的现代浏览器都可以支持:IE8以下的浏览器不支持 画布 可支持 ...
- ASP.NET伪静态配置
一.下载URLRewriter.dll 二.在项目中添加URLRewrite的引用 三.配置webconfig 1.在<configuration>节点中添加: <configSec ...
- React + Python 七月小说网 启程(一)
一.为啥要做这个网站 很久没有写技术相关的博客了,最近几个月忙飞,各种工作,技术根本学不完,很难受. 趁着春节期间,终于有空闲时间做自己爱做的事情了,美滋滋. 热爱技术,热爱小说,于是诞生了个这么玩意 ...
- C# LINQ(7)
大部分的LINQ的关键字都说了,最后说一下排序吧. LINQ的是查询的利器. 那么查询就会有排序. 所有LINQ提供了两种简单的排序.倒序和默认排序. 关键字是: orderby ascending ...
- C# 密封
到目前位置所说的都是让类如何如何进行继承啊 ,重写啊,巴不得类有十多个继承,超级多的重写. 但是,今天我们来说说不允许继承和不允许重写! 这个不允许继承是包括类和方法. 这种情况好比: 爸爸有私房钱, ...
- hive的安装与配置 mysql安装 启动
三种模式 内嵌模式:元数据保持在内嵌的derby模式,只允许一个会话连接 本地独立模式:在本地安装Mysql,吧元数据放到mySql内 远程模式:元数据放置在远程的Mysql数据库 1.下载Hive安 ...