项目构建工具makelisp、Capsule、Dependency management plugin、lein-figwheel介绍

以下为你介绍的项目构建工具都可用在Linux系统上:makelisp(GNU Make 的 Lisp 实现)、Capsule(JVM 应用部署工具)、Dependency management plugin(依赖管理插件)、lein-figwheel(ClojureScript 热构建工具)。

1、makelisp(GNU Make 的 Lisp 实现)

makelisp 是 GNU make 的 Lisp 实现。

makelisp.mk 是 GNU make 中的 Lisp 解析器。

GNU make 包含两个内置函数:$(shell) 和 $(guile)。

使用:

$ make -f makelisp.mk LISP_PROGRAM='(car (quote (a b c)))'

a

$ make -f makelisp.mk LISP_PROGRAM='(cdr (quote (a b c)))'

(b c)

$ make -f makelisp.mk LISP_PROGRAM='(cons 1 (cons 2 (cons 3 ())))'

(1 2 3)

$ make -f makelisp.mk

(defun fact (n) (if (eq n 0) 1 (* n (fact (- n 1)))))

(fact 10)

(defun fib (n) (if (eq n 1) 1 (if (eq n 0) 1 (+ (fib (- n 1)) (fib (- n 2))))))

(fib 12)

(defun gen (n) ((lambda (x y) y) (define G n) (lambda (m) (define G (+ G m)) G)))

(define x (gen 100))

(x 10)

(x 90)

(x 300)

^D

fact

3628800

fib

233

gen

x

110

200

500

内置函数:

car

cdr

cons

eq

atom

+, -, *, /, mod

neg?

print

特殊表单:

quote

if

lambda

defun

define

复杂示例:

1]、FizzBuzz:

$ cat fizzbuzz.l | make -f makelisp.mk

(lambda (n) (if (eq n 101) nil (if (print (if (eq (mod n 15) 0) FizzBuzz (if (eq (mod n 5) 0) Buzz (if (eq (mod n 3) 0) Fizz n)))) (fizzbuzz (+ n 1)) nil)))

PRINT:   1

PRINT:   2

PRINT:   Fizz

...

PRINT:   98

PRINT:   Fizz

PRINT:   Buzz

nil

2]、Sort:

$ (cat sort.l && echo '(sort (quote (4 2 99 12 -4 -7)))') | make -f makelisp.mk

...

(1 2 3 4 5 6 7)

(-7 -4 2 4 12 99)

局限性:

应该有很多限制,当您传递损坏的Lisp代码时,makelisp的行为非常奇怪。

下载地址:https://github.com/shinh/makelisp

2、Capsule(JVM 应用部署工具)

项目构建工具makelisp、Capsule、Dependency management plugin、lein-figwheel介绍

Capsule 是开源 JVM 应用部署和打包工具。Capsule 可以打包任意的 JVM 应用,一个 capsule 是单个可执行 JAR,包含所有应用所需要运行的文件和元数据,包含你所有 JAR 文档,依赖,资源,原生库。简而言之,Capsule 是自包含 JAR。

特性:

打包:小,便捷,方便。

安装:主机影响小,支持更新。

启动:灵活,安全,可选限制。

下载地址:https://github.com/puniverse/capsule

3、Dependency management plugin(依赖管理插件)

Dependency management plugin 提供类似 Maven 依赖管理和排除功能. 根据配置的依赖管理元数据,此插件将会控制你项目的版本、传递依赖,并且将执行你项目中的所有排除声明(exclusions declared)。

示例代码:

dependencyManagement {

dependencies {

dependency 'org.springframework:spring-core:4.0.3.RELEASE'

dependency group:'commons-logging', name:'commons-logging', version:'1.1.2'

}

}

dependencies {

compile 'org.springframework:spring-core'}

下载地址:https://github.com/spring-gradle-plugins/dependency-management-plugin

4、lein-figwheel(ClojureScript 热构建工具)

项目构建工具makelisp、Capsule、Dependency management plugin、lein-figwheel介绍

Figwheel 可以构建你的 ClojureScript 代码,然后在你编码的时候热加载到浏览器中。

特性:

在线代码重载。

支持 Node.js。

静态文件服务器。

在线 CSS 重载。

内置 ClojureScript REPL。

健壮的连接。

尝试Figwheel:

确保您安装了最新版本的leiningen。

快速尝试figwheel:

git clone https://github.com/bhauman/flappy-bird-demo.git

然后CD进入flappy-bird-demo并输入:

lein figwheel

现在,您可以转到localhost:3449/index.html并使用您喜欢的编辑器打开src/flappy_bird_demo/core.cljs并开始编码。确保打开浏览器的开发控制台,以便获得有关代码重新加载的反馈。

如果您希望新建项目,可以使用figwheel leiningen模板:

lein new figwheel hello-world

或可选:

lein new figwheel hello-world -- --om ;; 用于基于om的项目

lein new figwheel hello-world -- --reagent ;; 用于基于reagent的项目

下载地址:https://github.com/bhauman/lein-figwheel

注明

以上就是项目构建工具makelisp、Capsule、Dependency management plugin、lein-figwheel的介绍内容,这些项目构建工具都能使用在Linux操作系统中。

栏目相关文章