diet4j: run Maven modules directly, and avoid gigantic JARs and WARs
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.
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.
We’d love some feedback, it’s early days.
-
- Login or register to post comments
Printer-friendly version
- 1438 reads
PDF version
More in Tux Machines
- Highlights
- Front Page
- Latest Headlines
- Archive
- Recent comments
- All-Time Popular Stories
- Hot Topics
- New Members
today's leftovers
| Programming Leftovers
|
Free Software Leftovers
| Asymmetric Multi Processing with Linux & Zephyr on the STM32MP1
In the embedded world, more and more vendors offer Arm-based System-on-Chips (SoC) including both powerful Cortex-A CPU cores, designed to run a full-featured OS such as Linux, and one or more low-power Cortex-M cores, usually found in microcontrollers, designed to execute bare-metal or RTOS-based applications.
[...]
While the Linux kernel can run on a wide range of devices, it requires a decent amount of memory (> 4MB), and therefore cannot be used on memory-constrained microcontrollers.
Enters Zephyr, a project initiated by Wind River, now developed as a Linux Foundation project.
|
Recent comments
3 hours 12 min ago
3 hours 17 min ago
4 hours 13 min ago
4 hours 18 min ago
4 hours 58 min ago
5 hours 5 min ago
5 hours 18 min ago
5 hours 50 min ago
5 hours 54 min ago
5 hours 57 min ago