java 2021-06-05

Hi, does anyone know of a good leinengen template that generates a Java class? I want to create a class that I can import in a Java project

Why would you use Leiningen to create a Java class?

I’d like to use leiningen to create a project that produces compiled Java classes easily so that I can understand AOT better and so that I can see an example of modern best practices around AOT etc

Sorry for being vague

@danielmartincraig So you want to create a Clojure project that is using :gen-class to produce Java classes? (sorry but this just seems like a strange expectation)

I would like to call Clojure from Java. I guess that’s not very commonly done?

I was just hoping there was a modern example of how to do this in the modern landscape of Clojure tools

Alex Miller (Clojure team) 2021-06-05T13:29:44.011600Z

if you're building for Java consumption, my strong recommendation is to write the interface you want in Java (using only Java interfaces)

I guess I’m just not sure why you think there would be a Leiningen template for this…

Alex Miller (Clojure team) 2021-06-05T13:29:57.012100Z

that way you get the types you want, and the docstrings you want, etc

Alex Miller (Clojure team) 2021-06-05T13:30:36.012900Z

then implement those interfaces mostly in Clojure and use a small bit of the Clojure Java API to bootstrap https://clojure.github.io/clojure/javadoc/

Ok thanks for the great help!