Charles O'Farrell and I did some initial scoping out of what it would take to 
have a nice Java ecosystem in nix a few months ago but the efforts died down 
when I caught the nix-on-Darwin bug. I plan on getting back to it when I'm done 
and have a lot of ideas in the space. I'm on my phone now so don't have links, 
but there's a nearly dead ##nix-sbt channel on freenode with some links in the 
topic, and interested people hang out in there if you want to discuss. 

In short, I think I agree with a lot of what you're saying and share the same 
goals, and we should talk on IRC at some point. 


> On Jan 30, 2015, at 12:17, Ragnar Dahlén <[email protected]> wrote:
> 
> Hi, 
> 
> I've recently started using NixOS and friends and have been really impressed. 
> I've never had this much confidence in my operating system and the installed 
> software, and packaging new software has never been this smooth. The 
> community has also been really helpful. Thank you!
> 
> One of my development targets at work is Clojure on the JVM and I'm 
> contemplating ways of leveraging nix in this world. I have a vague idea of 
> something I'd like to try, and would appreciate any 
> feedback/suggestions/references to prior work, including "this is an awful 
> idea don't do it". 
> 
> In short, I'd like to use nix to express dependencies on Maven packaged JARs, 
> and make them available to my package at build or runtime. 
> 
> For those of you unfamiliar with the Java world, a JAR is typically a Java 
> Library, and Maven is many things, but what it provides that I'd like to 
> leverage is: 
> - a way of naming and versioning JAR files 
> - dependency resolution for JAR files 
> - repositories hosting JAR files 
> 
> Rough outline of how I see this working: 
> 
> - Provide the ability to express Maven dependencies in a derivation. Not 
> exactly sure how this would work or look but end result could perhaps be a 
> set like:
>     [{ groupId = "org.clojure"; artifactId = "clojure"; version = 
> "1.7.0-alpha" } ...];
> 
> - Add some functionality for downloading JARs from maven, including 
> transitive dependencies, and putting those JARs in nix store (the maven 
> executable sort of knows how to do this). Maven provides sha1 checksums, 
> maybe leverage those for verification? 
> 
> - Provide a way to to, given list of dependencies expressed as above, get the 
> corresponding list of paths to all transitive dependencies in nix store. This 
> can be used for example in `buildInputs` in order to construct a full 
> classpath (':' separated list of JAR files) needed by the java runtime or 
> compiler. 
> 
> If I had that, I think I could do some more interesting stuff.
> 
> As I said, any and all feedback appreciated. Happy to chat about this 
> off-list on #irc (I'm ragge) if you prefer. 
> 
> Best regards, 
> Ragnar
> _______________________________________________
> nix-dev mailing list
> [email protected]
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to