Clojure自定义Java互操作
我试图找到关于将自定义Java文件集成到Clojure项目中的最佳文档和信息。我已经检查了这个项目,看到所有的文件都是Clojure自定义Java互操作,java,clojure,interop,Java,Clojure,Interop,我试图找到关于将自定义Java文件集成到Clojure项目中的最佳文档和信息。我已经检查了这个项目,看到所有的文件都是.java文件,位于/src/main/java目录下。不幸的是,它没有使用Leiningen(我正在使用的),所以我看不出它是如何与java文件一起调用的 假设我想使用Clojure的一个大型Java项目,比如,它被抽象为一个标准的、主要的、主要的入口点,比如publicstaticvoidmain()。我是否只是将每个.java文件转储到我的类路径中,并希望得到最好的结果?要
.java
文件,位于/src/main/java
目录下。不幸的是,它没有使用Leiningen(我正在使用的),所以我看不出它是如何与java文件一起调用的
假设我想使用Clojure的一个大型Java项目,比如,它被抽象为一个标准的、主要的、主要的入口点,比如
publicstaticvoidmain()
。我是否只是将每个.java
文件转储到我的类路径中,并希望得到最好的结果?要在Leiningen项目中包含您自己的.java
文件:
(defproject my-project "0.0.1-SNAPSHOT"
; ...
:java-source-paths ["src/main/java" "src_other/java"]) ; It's up to you how to structure paths
在此设置中,您的.java
文件编译将由Leiningen管理
要包含一些Maven存储库中可用的现有Java项目,只需添加依赖项。对于MALLET,它将看起来像:
(defproject my-project "0.0.1-SNAPSHOT"
; ...
:dependencies [[cc.mallet/mallet "2.0.7"]])
最后,如果目标是包含私有jar
文件,那么最好的选择是创建本地Maven存储库
在所有这些情况下,您都可以执行普通的Java Clojure互操作。在类路径中包含Java文件对Clojure毫无用处。您可以用与clojure库相同的方式要求leiningen提供java库,并且这些类将以与您在jvm中使用任何内置类相同的方式实现互操作。如果你问的是如何进行互操作,我想这里的其他问题也涵盖了这一点。