3

语境

如果我希望 Lein 1.7 从加载的特定类开始,我会:

:repl-init init.init

现在,我不想让 lein 加载 *.clj 文件,而是希望 lein 执行“java Foo”的等效操作,其中 Foo 是 classes/Foo.class

问题:

我的 project.clj 看起来很像:

(defproject ...
  :aot [Foo]
  ???? )

我放什么???通过执行“java Foo”使“lein repl”启动?

谢谢!

4

1 回答 1

4

如果我理解您的问题,您仍然可以为此使用 :repl-init ,方法是调用要在 repl 加载的命名空间中预加载的类。在此示例中,我使用println语句作为您要完成的设置的替代 :-)

项目.clj:

(defproject foooo "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]]
  :aot [foooo.core]
  :main foooo.core
  :repl-init foooo.core)

核心.clj

(ns foooo.core
  (:gen-class))
(println "setting up for fun")

(defn -main [])

compile: arthur@a:~/foooo$ lein compile Compiling foooo.core 编译成功。

跑步:

arthur@a:~/foooo$ CLASSPATH=./lib/clojure-1.3.0.jar:./classes/ java foooo.core 1
setting up for fun

或者:

arthur@a:~/foooo$ lein run
setting up for fun

回复:

arthur@a:~/foooo$ lein repl
REPL started; server listening on localhost port 63392
setting up for fun
foooo.core=>  
于 2012-06-20T03:13:01.613 回答