Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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+;Clojure开发:没有Leiningen的苹果酒?_Java_Clojure_Project Management_Leiningen_Cider - Fatal编程技术网

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

同步Java+;Clojure开发:没有Leiningen的苹果酒?,java,clojure,project-management,leiningen,cider,Java,Clojure,Project Management,Leiningen,Cider,下面是一个场景:我正在为一个需要Java解决方案的类处理一个项目:特别是,key函数接收一个AI问题并返回一个答案字符串。我想要的方法是接收问题,然后将其发送给Clojure函数,该函数解决问题,并将解决方案字符串返回给键函数,键函数反过来提交问题 我的问题是工作流程。作为一个狂热的emacs用户(虽然对Clojure来说是新手),我希望从使用苹果酒中获得好处。然而,由于该项目的Clojure和Java部分都在开发中,在Leiningen启动一个新项目似乎并不可行或必要。目前,我已经在Java中

下面是一个场景:我正在为一个需要Java解决方案的类处理一个项目:特别是,key函数接收一个AI问题并返回一个答案字符串。我想要的方法是接收问题,然后将其发送给Clojure函数,该函数解决问题,并将解决方案字符串返回给键函数,键函数反过来提交问题

我的问题是工作流程。作为一个狂热的emacs用户(虽然对Clojure来说是新手),我希望从使用苹果酒中获得好处。然而,由于该项目的Clojure和Java部分都在开发中,在Leiningen启动一个新项目似乎并不可行或必要。目前,我已经在Java中构建了一个类,该类在调用Clojure时处理AI问题,然后我从命令行(non-Cider)启动一个REPL并开始处理它,将进程保存在.clj中。一旦我以这种方式解决了AI问题,我计划退出定制的problem dealer类(在最终提交时无效),只需将问题从关键Java函数传递到主Clojure函数,并返回答案字符串

我的最终提交文件必须包括:KeyFunction.java

我的最终提交文件还可以包括:myClojureFile(JAR或其他Java可调用格式)


那么,当我的“项目”实际上是用Java编写的,就最终提交而言,我如何在获得Cider(它的说明总是包括一个Leiningen项目)好处的同时实现这一点呢

您可以运行由提供的
nrepl
服务器,并通过
cider
连接到此服务器。您还需要使用
cider
版本所需的任何nrepl中间件。由于您没有使用
lein
,因此需要通过
maven
配置依赖项,或者在本地安装它及其所有依赖项(以及
cider
版本所需的中间件)

但到目前为止,更好的解决方案是只使用
leiningen
,这简化了设置

leinengen
项目可以同时包含Clojure和Java代码。如中所述,lein将编译Java代码,然后编译Clojure代码

如果您有任何Java要在:Java源路径或:aot中列出的Clojure名称空间中编译,则它们将始终在Leiningen通过任何run、repl等调用运行任何其他代码之前编译


因此,考虑到我的客户将有一个Java程序,他们将把我的东西插入其中,所以我将只提交我上面提到的内容(并且仅提交我提到的内容),您提到的这种方法将如何实现?如何最终将其归结为.java和.jar?
lein-uberjar
lein-jar
命令都会创建一个jar文件,其中包含任何.clj或.java文件、您定义的任何资源、编译的.class文件,以及(对于uberjar)所有必需的第三方jar。