⭐ Support the Project ⭐
If you find this project useful, please consider giving it a ⭐ on GitHub! Your support helps the project grow and reach more developers. 😊
The Next-Gen Build Tool for Java & Co
JeKa is a modern Java build tool designed for simplicity, combining ease of use with robust handling of complex scenarios.
It targets a generation of Java developers who prefer simple, Java-centric tools over complex XML-based or external DSL-based solutions for building their applications.
- Replace Maven or Gradle: Use simple and powerful properties/Java instead of XML or complex DSL. Get rid of JDK installations.
- Use Java for scripting: Write scripts, devOps pipelines or complex applications in Java, runnable directly from source code.
- Package Java applications as source: Publish the source code in a Git repo and execute it instantly from everywhere, in JVM or native mode.
- Handle complex build scenarios gracefully: Encapsulate build logic using intuitive Java mechanisms.
- Make Java more attractive: Learn Java effortlessly, without complex XML or intimidating heavy tools.
- Zero-Config Builds: Build Java projects with zero setup — no configuration or JDK installation required.
- Java-Based Configuration: Customize builds with simple properties or fine-tune with plain Java code — no XML, No DSL.
- Full Portability: Automatically downloads required JDK versions and tools — no pre-installed JDK needed.
- Cloud-Native Ready: Effortless native compilation and Docker image creation — no setup or configuration needed.
- Run Java/Kotlin Scripts: Execute simple scripts or full applications directly from source code — no compilation and dep management needed.
- Instant App Deployment: Push application code to Git, and it's ready to run — no pipeline required.
- Simple Extensions: Integrate third-party tools or handle complex scenarios with minimal effort.
- Super Lightweight: Comes as a zero-dependency JAR of less than 2MB.
- Multi-Module Project Support: Enables configuration of multi-module projects with minimal configuration required.
- Supported Technologies: Java, Kotlin, Git, Docker, GraalVM, Spring-Boot, Node.js, OpenAPI, Jacoco, SonarQube, Protobuf, Maven, and more.
Visit the installation page.
Execute build methods
- Compile, test, and create JAR:
jeka project: test pack
- Compile to native executable:
jeka native: compile
- Create a JVM-based Docker image:
jeka docker: build
- Create a native-based Docker image:
jeka docker: buildNative
Execute Java applications
- Run a Java application directly from its Git repository:
jeka -r <git url> -p [program args...]
- Example:
jeka -r https://github.com/jeka-dev/demo-cowsay#0.0.6 -p Hello JeKa
Help
- Display help on console:
jeka --help
- Display docs on KBeans:
jeka --doc
Configure builds using properties
jeka.classpath=dev.jeka:jacoco-plugin dev.jeka:sonarqube-plugin
@project.moduleId=my-org:my-lib
@project.gitVersioning.enable=true
@project.pack.jarType=SHADE
@jacoco=on
@sonarqube=on
@sonarqube.gate=true
Create specific tasks with Java code
import dev.jeka.core.tool.JkInject;
import dev.jeka.core.tool.builtins.project.ProjectKBean;
@JkDep("commons-net:commons-net:3.11.1")
class Build extends KBean {
@JkDoc("Deploy Spring-Boot application on remote server")
public void deploy() {
Path jar = load(ProjectKBean.class).project.artifactLocator.getMainArtifactPath();
this.sendThroughFtp(jar);
this.sendRestartCommand();
}
...
Visit the documentation, and explore the examples.
External plugins must be explicitly imported and are hosted as JAR files on Maven Central.
The following plugins are part of JeKa’s monorepo and are released together, so their version does not need to be specified when importing:
- Spring Boot Plugin
- SonarQube Plugin
- JaCoCo Plugin
- Node.js Plugin
- Kotlin Plugin
- Protobuf Plugin
- Nexus Plugin
- Central Portal Plugin
The following plugin is maintained in a separate repository:
- Contribute: Contribution Guide
- Issues: Report or track issues
- Discussions: Join discussions
- Twitter: Follow us
- Email Support: support@jeka.dev
This project is supported by the OW2 Consortium.
JeKa follows Semantic Versioning 2.0.
- Improve documentation
- Enhance existing functionality based on user feedback.
- Develop a dedicated plugin for Kubernetes.
- Provide examples showcasing JeKa's use for provisioning cloud platforms via their SDKs.