[leiningen] Help packaging jni shared-objects in uberjar

  • From: Shlomi Vaknin <shlomivaknin@xxxxxxxxx>
  • To: leiningen@xxxxxxxxxxxxx
  • Date: Tue, 26 Sep 2017 17:00:49 -0700

Hi all,

I am making an internal clojure library that wraps some cpp library.
Everything works locally, and I have the folder structure
"project/native/linux/x86_64/". Inside I have all the .so files that the
library needs.

I would like to package this and have it accessible just as a "maven"
artifact. My hope is that potential users could simply add the dependency
to their project.clj or pom files and have everything working (maybe even
without setting LD_LIBRARY_PATH manually)

I tried to follow almost everything I could find online regarding this, but
could not make it happen with lein. I could divide this project into a
"jni/maven" (maybe using something like that
<http://www.mojohaus.org/maven-native/native-maven-plugin/usage.html>) and
then have that as a dependency of my clj-library, but that seems a little
cumbersome.

Any tips on how to do that directly through lein?

Thanks,
Shlomi

Other related posts: