2019独角兽企业重金招聘Python工程师标准>>>
Clojure初学,先使用REPL熟悉了一些语法知识,对于有Java基础的我来说,很快就熟悉了大部分语法规则,遂想能不能着手开发一个简单的小项目练手,既然要做项目,肯定要分模块,通过命名空间将不同模块按职责划分开。但问题来了,两个clj文件之间是如何引用的?如果想使用一个第三方的jar包,要如何导入classpath呢?接下来,我是这么做的。
首先,找一个目录作为我们的工作目录,然后在这个目录下建立bin,lib,workspace三个文件夹:
bin目录放的是Clojure的启动脚本,lib目录存放我们项目中依赖的jar包,workspace目录存放我们开发的clj源文件。
关键就是这个bin目录下的clj.bat脚本,里面是这么写的:
@echo off
java -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%CLJ_HOME%\lib" clojure.main %1
-Djava.ext.dirs用来指定classpath到%CLJ_HOME%\lib目录,当然CLJ_HOME需要配置到环境变量里。为了不覆盖java默认的扩展classpath,也要把%JAVA_HOME%\jre\lib\ext目录带上。
clojure.main是clojure的启动类,它可以接收一个clj文件作为参数,我们通过%1来从命令行读取。
然后我们把这个bin目录加入到环境变量的path里,这样方便我们在任何目录都可以执行clj命令。
接下来,在workspace目录创建源文件,我们有一个hello模块和一个test模块
hello.clj如下:
(ns hello.hello
(:import
date.DateTools))
(def
t (DateTools/getDate "yyyy-MM-dd HH:mm:ss"))
(defn hi [name]
(print "Hello" name t))
其中,date.DateTools来自lib目录下的date-tools.jar
test.clj如下:
(ns test.test
(:require
[hello.hello :as h]))
(h/hi "xueliang")
保存好源文件,打开cmd命令行,进入到workspace目录。
然后执行clj test/test.clj
这样,基础环境就算完成,接下来就开始吧,有需要引用的第三方jar包或者我们自己封装好jar包就放到lib目录,然后在workspace目录里逐渐壮大我们的项目吧!