This subdirectory provides shared Gradle build conventions, which are designed for a hardened security posture and high- performance build experience on modern JVM toolchains. This framework of convention plugins (and other artifacts) runs the gamut in terms of project applicability, but has a particular focus for JVM applications and library authors, especially with Kotlin.
Plugins are provided for integrating various Java ecosystem features with Gradle, especially around JPMS. There are plugins which also set sensible baseline defaults, including:
- Better reproducibility of archives (zip, tar, jar), which improves cacheability of outputs
- Sensible defaults for dependency security, including dependency locking and verification
- Strong configuration for linting and code checking, with unopinionated configuration control
- Testing features like test logging and multi-module merged test + coverage reporting out of the box
Tip
👆 These are the features included with use of any plugin provided here.
On top of the above functionality, there are feature plugins:
-
dev.elide.base
: Just applies the baselines above, but can be switched off, too, to avoid interfering with your current build settings. -
dev.elide.jmod
: Buildjmod
artifacts in Gradle JVM projects with Java 9+.jmod
artifacts are compatible withjlink
and make for great optimized build artifacts in modular projects. -
dev.elide.jpms
: Toolkit plugin for Gradle builds enabled with modular Java (Java Platform Module System, or JPMS). Provides amodulepath
configuration and modular builds for Java, Kotlin, and GraalVM. -
dev.elide.mrjar
: Plugin for easily building multi-target MRJAR artifacts. This plugin goes above and beyond by building the entire project at each bytecode tier, so that modern Java runtimes can leverage the latest available bytecode for your app or library. -
dev.elide.jlink
: Plugin for usingjmod
andjpms
to build optimized, self-contained modular Java apps usingjlink
. -
dev.elide.graalvm
: Plugin for usingjmod
andjpms
to build optimized, native AOT Java apps usingnative-image
. -
[
dev.elide.gha
][12]: Integrate your Gradle build with GitHub Actions. Enables enhanced logging and reporting features, PR integrations, and other features supported by the workflows in this repo.