Ernst,

This is a great idea and very timely for me.  I'm updating our Java SDLC and 
our current process manually creates shell scripts with long classpaths for 
dependency resolution.  We're moving to Maven and your idea could really help.  
I'll check it out and let you know how it works for us.

Dale

-----Original Message-----
From: Johannes Ernst [mailto:[email protected]] 
Sent: Tuesday, June 02, 2015 13:28
To: [email protected]
Subject: [EXTERNAL]Ann: diet4j -- run Maven modules directly, without gigantic 
jars

Maven is great for breaking gigantic code bases into many little modules, with 
identified dependencies. This allows incremental builds etc.

And then, to run that code, we usually put all together again into a 
uber-mega-JAR or WAR, or with mile-long class paths. While sometimes this makes 
sense, often it does not. 

diet4j can run command-line apps, and Tomcat web apps, similarly to how maven 
builds projects: simply specify the name of the top project, and diet4j 
assembles all the other JARs automatically for the run.

E.g. if your project hierarchy looks like this:
    Project A
        Project B
            Project C
        Project D

you can say:

> diet4j A

which will read the POM in A.jar (in ~/.m2/repository, or a location of your 
choosing), determine run-time dependencies, then recursively look for B.jar, 
C.jar and D.jar, load them into separate ClassLoaders, hook up dependencies and 
jump on the main program (if it has one) of Project A.

No jar-with-dependencies and stuff like that required. Usually no changes are 
required to maven projects or program structure.

As I said, it may not be for all people, but it is for some who want to 
distribute changes incrementally, avoid rebuilding gigantic JARs every time 
some small change needs to happen, fit better into Linux-style package 
management etc. It’s also great for dynamically finding and loading modules 
without restarting the application.

I’d love some feedback, it’s early days.

http://diet4j.org/ <http://diet4j.org/>

Thank you,


Johannes Ernst

Reply via email to