用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的多模块项目,也好分工开发,也便于后期微服 ...
随机推荐
- 杀毒软件 avg
http://filehippo.com/download_avg_antivirus_64 R studio: https://www.rstudio.com/products/rstudio/do ...
- 关于wamp中升级PHP+Apache 的问题
首先个人不建议wamp中升级php版本,如果你不信可以试一试,当你php升级后发想,奥,Apache版本不匹配,然后又去升级Apache,结果搞了半天,弄出来了就好,要是没出来,可能你会气死(好吧,气 ...
- 解决linux下80端口占用问题
在即安装有tomcat,又安装有nginx的服务器上(典型阿里云驻云java镜像),系统默认配置nginx占用80端口,tomcat占用8080端口. 如果想要便于用户可以直接通过IP或者域名访问到t ...
- 软件工程:Java实现WC.exe基本功能
项目相关要求 GitHub地址:https://github.com/3216004716/WC 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处 ...
- 小议C#接口的隐式与显示实现
小弟不才,各位大牛嘴下留情... 一.对于继承类里头有相同方法时候,用接口方式去调用,会优先查走显式接口方法 例如 public interface IA { void Test(); } publi ...
- wp8 与wp7.5图标规格说明
wp8 小图标 159*159 中图标 336*336 大图标 691*336 wp7.5 173*173
- 今天遇到的传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确的解决方案
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 3 ("@UserName"): 数据类型 0xE7 的数据长度或元数据长度无效. 今天在做数据同步的时候遇 ...
- Winform中的DatagridView显示行号
1.设置 RowPostPaint 为true 2.启用RowPostPaint事件 /// <summary> /// DataGridView显示行号 /// </summary ...
- (转)深入研究MiniMVC之后续篇
今天在园子看到<深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的>之后,本来是不打算开博来续这个后传,不过,在那边回了个评论之后, ...
- 死磕Java之聊聊HashSet源码(基于JDK1.8)
HashSet的UML图 HashSet的成员变量及其含义 public class HashSet<E> extends AbstractSet<E> implements ...