librelist archives

« back to archive

need help with file level dependency mgmt

need help with file level dependency mgmt

Kim Kinnear
2013-11-20 @ 03:32
I have managed to get some of my Clojure code accepted
into the product on which I work.  Which is great, but
I now need to integrate building that code from source
to .jar files (in some cases uberjar files) as part of
our build.  Our build is very large, and very old, and
while it has a bit of Java here and there, it isn't Java
based -- it is driven by a huge series of Makefiles and
runs on multiple OS platforms.

I would like to use leiningen to build the jars and uberjars,
that I need -- inside of this build system. However, I'm 
having a problem with the dependency management.

Our build isn't on the internet, and so I have to get all
of the .jar files and put them somewhere for leiningen to
get to them.  Which is fine.  The problem I'm having is
that leiningen apparently needs a local repo to be running
a web server (even for local file access).  While it may seem
outlandish, our build process runs in such a way that there
isn't a local web server running against the directories
to which the build has access.

In the old days (leiningen < 2.0), I think I could have put
the jars on which a project was dependent into a directory
in that project and moved on from there.  Not pretty, but
workable.  I don't see a way to do even that today.

I know that there are tools that will provide local repositories,
but getting that set up to support the relatively tiny amount
of code that these Clojure projects represent would not be allowed
(and if it was, the effort of setting them up and maintaining them
could not be sustained).

My question: is there a way to use leiningen and have it
find the .jar files to satisfy dependencies from a directory
as opposed to a web-server accessing a directory.  
I don't care how messy the solution is -- I can use the
Makefiles to move things around, but I would very much like
to use leiningen to do the actual construction of the
.jar and uberjar files.

Thanks for any insight anyone can provide.

Thanks -- Kim