这似乎是一个错误,但我想知道是否有办法解决这个问题。
我有一个类定义如下
(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 中的定义接口(interface),如下所示...
(ns myns.myext.core)
(definterface client
(^void foo [])
)
这是一个没有 main 的库,但无法编译。它收到类未找到异常,因为它尝试在 myns.myext.core 之前编译 myns.myext.core.client 。我可以使用任何 hack 来强制 linesenen 以正确的顺序编译它们吗?项目定义使用 :aot :all 。代码没有问题,因为如果我注释掉 gen 类中的实现,编译,取消注释并重新编译它就可以正常工作。不能指望最终用户仅仅为了编译库而更改代码。
版本:Java 1.7.0_55 Java HotSpot(TM) 64 位服务器 VM 上的 Leiningen 2.3.4
最佳答案
只需将 require 写在 gen-class 之前即可。应按顺序评估代码。
关于java - 如何让 leiningen 在实现之前评估需求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015327/