这似乎是一个错误,但我想知道是否有解决此问题的方法。
我有一个定义如下的类
(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中的definterface,如下所示...
(ns myns.myext.core)
(definterface client
(^void foo [])
)
这是一个没有主库但不能编译的库。它正在获取未找到的类异常,因为它试图在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-class之前编写require。代码应按顺序进行评估。