这里是场景:我正在为一个需要Java解决方案的类开发项目:特别是,key函数接收AI问题并返回一个回答String。我想要的方法是接收问题,然后将其发送到解决它的Clojure函数,并将解决方案字符串返回给关键函数,然后提交它。
我的问题是工作流程。作为狂热的emacs用户(虽然是Clojure的新用户),我希望获得使用Cider的好处。但是,由于该项目的Clojure和Java部分都在开发中,因此在Leiningen开始一个新项目似乎不可行或不必要。目前我已经在Java中构建了一个类,它在调用时向Clojure处理AI问题,然后我从命令行(非Cider)启动一个REPL并开始处理它,从而节省了.clj的进度。一旦我通过这种方式解决了AI求解器,我计划让自己离开自定义问题的经销商类(在最终提交中无效)并简单地将问题从关键Java函数传递到主Clojure函数并获得答案字符串返回
我的最终提交文件必须包含:KeyFunction.java
我的最终提交文件还可以包含:myClojureFile(JAR或其他Java可调用格式)
那么,当我的"项目"时,我如何在获得Cider(其中包含Leiningen项目的说明)的好处的同时实现这一目标。在最终提交方面真的是Java吗?
答案 0 :(得分:0)
您可以运行clojure.tools.nrepl
提供的nrepl
服务器,并通过cider
与此相关联。您还需要使用cider
版本所期望的nrepl中间件。由于您未使用lein
,因此需要通过maven
配置依赖项,或者在本地安装它及其所有依赖项(以及cider
版本所需的中间件)。 / p>
但到目前为止,更好的解决方案是使用leiningen
,这简化了此设置。
leinengen
项目可以包含Clojure和Java代码。正如tutorial中提到的,lein将编译Java代码,然后编译Clojure代码。
如果你要编译任何Java:java-source-paths或者alo中列出的Clojure名称空间,它们将始终在Leiningen运行任何其他代码之前编译,通过任何运行,repl等调用。