Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让leiningen在实施前评估需求?_Java_Clojure_Interop_Leiningen - Fatal编程技术网

Java 如何让leiningen在实施前评估需求?

Java 如何让leiningen在实施前评估需求?,java,clojure,interop,leiningen,Java,Clojure,Interop,Leiningen,这似乎是一个错误,但我想知道是否有办法绕过这个问题 我有一个定义如下的类 (ns myns.myext.anotherext.client (:gen-class :implements [myns.myext.core.client] :prefix - :init init :state state ) (:require [myns.myext.core]) ) 我不知道这是否显而易见,但是myns.myext.core.clie

这似乎是一个错误,但我想知道是否有办法绕过这个问题

我有一个定义如下的类

(ns myns.myext.anotherext.client
  (:gen-class 
     :implements [myns.myext.core.client]
     :prefix -
     :init init
     :state state
   )
   (:require [myns.myext.core])
)
我不知道这是否显而易见,但是myns.myext.core.client是myns.myext.core中的一个定义接口,如下所示

(ns myns.myext.core)

(definterface client
  (^void foo [])
)
这是一个没有main但不会编译的库。它正在获取一个未找到的类异常,因为它试图在myns.myext.core之前编译myns.myext.core.client。有没有什么黑客可以用来强迫liningen按照正确的顺序编译这些文件?项目定义正在使用:aot:all。代码没有问题,因为如果我注释掉gen类中的实现,编译、取消注释实现并重新编译它就可以正常工作。不能指望最终用户仅仅为了编译库而修改代码


版本:Java 1.7.0_55 Java HotSpot(TM)64位服务器VM上的Leiningen 2.3.4只需在gen类之前编写require。代码应该按顺序计算。

只需在gen类之前编写require。代码应该按顺序进行评估。

在这个站点之外,我被指向了一个有效的解决方案。我在project.clj中添加了以下内容,这是我唯一解决问题的方法

  :prep-tasks [["compile" "myns.myext.core"]
               "javac" "compile"]

在这个网站之外,我被指向了一个有效的解决方案。我在project.clj中添加了以下内容,这是我唯一解决问题的方法

  :prep-tasks [["compile" "myns.myext.core"]
               "javac" "compile"]