是否可以在不进入REPL的情况下编译Clojure源代码?如果存在一个大型项目,则不可能手动编译每个程序,然后将其制作成jar文件,例如,如果我希望通过一些 make 软件中的指令编译并获取类文件怎么办?
是否可以在不进入REPL的情况下编译Clojure源代码?如果存在一个大型项目,则不可能手动编译每个程序,然后将其制作成jar文件,例如,如果我希望通过一些 make 软件中的指令编译并获取类文件怎么办?
(ns hello
(:gen-class
:methods [[sayHi [] String]]))
(defn -sayHi [this]
(println "hello world"))
(set! *compile-path* "./")
(compile 'hello)
$ java -cp ~/dj/lib/clojure.jar:./ clojure.main compile.clj
$ ls
compile.clj hello.clj hello$loading__4505__auto__.class
hello.class hello__init.class hello$_sayHi.class
$ java -cp ~/dj/lib/clojure.jar:./ clojure.main
Clojure 1.3.0
user=> (import 'hello)
hello
user=> (.sayHi (hello.))
"hello world"
user=>
是的 - 您可以在不使用REPL的情况下编译和运行Clojure代码。
有几种选项可以实现这一点:
make
,而不能使用leiningen
或maven
? - skuromake
中,您也必须遵循相同的步骤,例如提供-main
函数等。只是,几乎没有其他Clojure开发人员使用这样的工具集,而有许多快乐的Leiningen用户。我建议您发布您的Leiningen配置并寻求帮助。 - skuro