Skip to content

jeka-dev/jeka

Repository files navigation

Build Status Maven Central Twitter Follow

Important

JeKa 0.11.0 has been released!!!

This release brings major and drastic changes compared to previous JeKa versions.

The content of this page reflects the new version and does not apply to 0.10.x.

The existing IDE plugin for IntelliJ still works with Jeka 0.10.x but is no longer compatible with the new version. A new plugin for Jeka 0.11.x is under development.

The official documentation provides information for both versions and a migration guide.

Contribute

Are you a developer, technical writer, or user interested in making an impact? We invite you to join us in contributing code, documenting knowledge, or providing valuable feedback. Your participation is crucial in creating something great. At Jeka, every contribution counts, and every voice matters. Collaborate with like-minded individuals and help shape the future of our community.

Let’s build, learn, and grow together. Join us and make a difference.

See contribution page for starting.

What is JeKa ?

JeKa is a Java build tool for building or executing Java applications and scripts, directly from source code.

Its key features include:

  • JDKs Management: Automatically downloads and selects the appropriate JDKs. No need to have Java already installed on the host machine.

  • Direct App Execution: Run applications directly from their Git repository, providing a means to distribute Java applications as source.

  • Portable Builds: JeKa downloads everything needed for building your projects (JDKs, Maven deps, NodeJs, OpenAPI tooling, etc. including JeKa itself!)

  • Customizable and Extendable: JeKa can be configured with a concise property file for generic cases, or by Java code for specific needs. Also, JeKa provides a simple plugin mechanism that allows for easy extension.

  • Kotlin Support: Scripts or applications can also be implemented using the Kotlin language.

Use-cases

  • Use Java for scripting

    JeKa makes it ridiculously easy to write and execute scripts using the Java language. Write your automated tasks directly in Java, using third-party dependencies or not, and execute them from anywhere, without any setup.

  • Build projects - Create delivery pipelines

    Build projects and seamlessly combine scripts to create comprehensive CI/CD pipelines that can run anywhere, from IDE debugger to cloud CI/CD environments.

    JeKa can also complement other build tools such as Maven or Gradle to fulfill their missing features.

  • Deliver applications as sources

    JeKa can execute entire Java applications of any kind and size directly from their Git repository.

    Simply commit or tag repository to publish application.

  • Make Java fun for newcomers

    Say goodbye to learning legacy build tools and grappling with JDKs when starting with Java.

    Write directly Java code that can be built and executed from anywhere with minimal or zero setup.

  • Centralize build logic

    Define project build and CI/CD logic in one place, and reuse accross all your organization.

Examples

Run Java Applications directly from their Source Repository

Build and Test E2E

Reuse Build Logic

Combine with existing Build Tools


Other Examples of projects built with JeKa.

Getting Started

Visit following pages according your expectation :

KBeans

KBeans are JeKa components that expose functionnalities to the command line. They can also be conveniently activated and configured via properties, or via other KBeans.

Plugins generally contain one KBean, but they can contain zero or many.

Bundled KBeans

JeKa is bundled with KBeans covering : IDE integration (IntelliJ Eclipse), Java/Kotlin Project building, Maven publication, Git integration, Docker and more.

You can get a description of the functionalities provided by the KBeans by executing jeka --doc

Additionnaly JeKa offers high and low level api for dealing with dependency management, compilation, testing, Git, GPG signing, Scaffolding, Maven publication, Docker image maker, ...

External Plugins

External plugins require to be explicitly imported. They are hosted as jar file in Maven Central.

The following plugins are hosted in same monorepo then JeKa, and so are released in conjunction which means that we don't need to specify their version when importing.

The following plugins are maintained in their own repos.

Versioning

JeKa follows Semantic Versioning 2.0.

Community

Image

This project is supported by OW2 consortium.

Issues: https://github.com/jeka-dev/jeka/issues

Discussions: https://github.com/orgs/jeka-dev/discussions

Twitter: https://github.com/jeka-dev/jeka

Email support : support@jeka.dev