Note that there are some explanatory texts on larger screens.

plurals
  1. POHow best to structure and build Clojure apps with plugins?
    primarykey
    data
    text
    <p>I think (see below) that I would like to structure a Clojure project as multiple modules, with ordered dependencies - just like Maven lets me do with <a href="http://docs.codehaus.org/display/MAVENUSER/Multi-modules+projects" rel="nofollow noreferrer">multi-modules projects</a>.</p> <p>But I can't see how to do this with Leiningen - all I can see is the <code>checkouts</code> fix described in the <a href="https://github.com/technomancy/leiningen" rel="nofollow noreferrer">FAQ</a> which doesn't seem to be as powerful.</p> <p>Will lein do this? Should I be using Gradle instead? Or is this kind of thing not needed?</p> <p>Some more context: I am wondering how to architect a modular application that supports plugins (which I imagine means jars dumped on the classpath). And am wondering to what extent I can structure that as a core + plugins (I am thinking I should be able to do something with Clojure's <a href="https://stackoverflow.com/questions/1810231/defining-a-spi-in-clojure">dynamic code loading</a> and not have to go with Java/OSGi). So I guess the driving motivation for a <em>single</em> project comes from wanting some way of packaging everything (the core + default plugins) as a single blob that is easy for the end user, but which can also be divided up (and which is built and tested in fragments, testing the logical independence of each module). More general advice about this is welcome</p> <p><strong>Update</strong></p> <p>A possible solution that wasn't mentioned below is using a <a href="https://github.com/talios/clojure-maven-plugin" rel="nofollow noreferrer">Maven plugin</a> - I assume that supports everything Maven does, but compiles Clojure, so will work with nested modules, etc.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload