Java and Clojure with Leiningen

12,871

Solution 1

In Leiningen tutorial there is following statement

For projects that include some Java code, you can set the :java-source-path key in project.clj to a directory containing Java files. Then the javac compiler will run before your Clojure code is AOT-compiled, or you can run it manually with the javac task.

so it should work out of box if :java-source-paths option is set

Solution 2

As of Leiningen 2.x, :java-source-path has been replaced with :java-source-paths, whose value is now specified as a vector rather than a string.

A good place to find a full (up-to-date) documentation of Leiningen features is to peruse the sample project file. In this case, you will see:

:java-source-paths ["src/main/java"]

Solution 3

Use Vinyasa - I wrote it especially to deal with this problem

Here is a blog post Dynamic reloading of java code in emacs/nrepl

Share:
12,871

Related videos on Youtube

SarahK
Author by

SarahK

Hands-on technical leader and developer with 20 years of experience in technology. Currently into Rust and nim. polyglot programmer. cloud architecture. scaling, distributed systems, & databases. typescript | node.js | javascript | ruby | go | etc. many buzzwords. enthusiastic drummer. aspirational powerlifter. occasionally hilarious (citation needed).

Updated on January 12, 2020

Comments

  • SarahK
    SarahK over 4 years

    Is it possible to easily manage and compile native Java classes alongside Clojure in a project using leiningen?

    I am working at a pretty low level (with netty nio) and thinking that some of the plumbing classes would actually be easier to handle as raw java both in terms of constructing the code as well as performance.

  • Kalle
    Kalle over 4 years
    Also, for re-compiling and reloading java classes, see Virgil (github.com/ztellman/virgil) and my answer at stackoverflow.com/a/39857961/232644. Vinyasa is obsolete.