同步Java + Clojure开发:没有Leiningen的苹果酒?

时间:2014-09-19 09:04:00

标签: java clojure project-management leiningen cider

这里是场景:我正在为一个需要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吗?

1 个答案:

答案 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等调用。