A simplified package manager for Java and Groovy applications, inspired by npm, poetry, and cargo.
Jelly aims to make dependency management more accessible for developers coming from other ecosystems (Python, JavaScript, Rust) who find Maven and Gradle complex for getting started.
- Simplicity: Provide an npm-like experience for Java/Groovy development
- Accessibility: Lower the barrier to entry for new Java developers
- Familiarity: Use patterns familiar to developers from other language ecosystems
- Integration: Work with existing Maven infrastructure while abstracting complexity
Development Phase 1 - Foundation ✅ CLI Structure Implemented
- Modern CLI Interface with crossterm styling
- Project Initialization -
jelly initcommand - Clean Architecture foundation with proper error handling
- TOML Configuration parsing and generation
- Core dependency resolution engine
- Maven repository integration
- Artifact downloading and installation
jelly add <dependency>- Add dependenciesjelly install- Download and install all dependenciesjelly run [script]- Execute project scripts- Lock file support (jelly.lock)
- Development vs production dependencies
cargo build --releasejelly init my-java-appThis creates:
jelly.toml- Project configuration filelibs/- Directory for downloaded dependencies
[package]
name = "my-jdk-app"
version = "1.0.0"
main-class = "com.example.Main"
[dependencies]
"org.springframework:spring-core" = "6.0.0"
"junit:junit" = "4.13.2"
[scripts]
start = "java -cp 'libs/*' ${main-class}"
test = "java -cp 'libs/*:.' org.junit.runner.JUnitCore"- Rust 1.70+
- Java 8+ (for testing)
# Build the project
cargo build
# Run with arguments
cargo run -- init my-project
# Run tests
cargo test
# Check code
cargo check
# Lint code
cargo clippy- Fork the repository
- Create a feature branch
- Make your changes following the existing architecture
- Add tests for new functionality
- Submit a pull request
This project is open source and available under the MIT License.
Jelly takes inspiration from modern package managers:
- npm (Node.js) - Simple configuration and commands
- poetry (Python) - Elegant dependency management
- cargo (Rust) - Straightforward project structure
But designed specifically for the Java/Groovy ecosystem while maintaining compatibility with Maven repositories.