Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 46 commits ahead of gradle:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status Codecov GitHub release

Gradle Chainsaw Plugin

A plugin for Gradle that adds a support for Java Platform Module System, also known as Jigsaw, introduced by Java 9.

Gradle doesn't currently support building Java 9 modules in a first-class way, except for a extremely limited experimental-jigsaw plugin. This plugin aims to provide the necessary support by reconfiguring common Gradle tasks to use modules, so that you could use modules in your project right now.

The full documentation and some tips, how to solve common problems with Jigsaw, can be found on wiki.

Basic usage

If you already have a working Java project, applying the plugin is just one step:

plugins {
  id 'com.zyxist.chainsaw' version 'x.y.z'

Chainsaw will automatically detect your Jigsaw module descriptor and reconfigure Gradle tasks to use modules instead of classpath.


Every release brings improvements and support for more and more corner cases and use cases, based on real-world projects. The plugin is already quite usable. All of the features:

  • support for modular compilation of main sources and unit tests,
  • support for running unit tests (JUnit 4/JUnit 5 with possibility to add additional test engines and test libraries),
  • support for javadocs,
  • support for run task,
  • support for custom Jigsaw flags and module patching,
  • partial support for installDist task.

The long-term vision includes providing support for building modular runtime images, and multirelease JAR archives. To learn more about using Chainsaw, visit the project wiki.

How to help?

Chainsaw is a community project. You can help in various ways:

  • give the plugin a star on Github or make a fork,
  • write about Chainsaw on your blog,
  • create a Pull Request.

When creating a Pull Request, remember to write integration tests for the new functionality. Jigsaw tends to be very tricky and these tests are important to ensure that new features don't break anything that has previously worked.


Apache License 2.0


Gradle plugin: adds support for building Java 9 modules.








No packages published


  • Groovy 50.1%
  • Java 49.9%