使用Clojure deps.edn编译Java源代码

问题描述

如何配置Clojure CLI deps.edn文件以编译Java源文件以及.clj Clojure源文件

我发现badigeon可以编译Java源代码,但是我很难在我的简单项目中使用它。

解决方法

clj不会这样做。

leinclj命令行中做了很多超出范围的事情。

您可能会找到一些这样做的库,然后可以调用clj -m lib-that-compiles-java

,

不了解您的具体情况...

当前执行此操作的“最佳”方法是将Java和Clojure源代码分成两个项目。在Java项目中,使用已编译的类创建一个jar(使用标准Java工具-可能是makejavac),然后将该jar安装到本地Maven存储库中。然后将jar文件作为依赖项添加到Clojure项目的deps.edn中。

通过使用local/root中的deps.edn功能,您也许还可以直接使用jar,而无需在本地安装。有关如何操作,请参见Deps Rationale

另一种方法是安排将Java源代码编译到您的组合(Java / Clojure)项目的classes子目录中,然后将classes目录添加到{{1} },输入:paths。 (再次)必须使用Java工具或Shell脚本(在deps.edn之外)创建类文件。

clj中的一些最新进展可能会使其在将来变得更容易。