All Projects → zyxist → chainsaw

zyxist / chainsaw

Licence: Apache-2.0 license
Gradle plugin: adds support for building Java 9 modules.

Projects that are alternatives of or similar to chainsaw

http-server
A Java HTTP server in 35MB Docker image
Stars: ✭ 17 (-76.06%)
Mutual labels:  java-9, jigsaw
java9-module-examples
a list of Java 9 module samples to dive into the modular world
Stars: ✭ 25 (-64.79%)
Mutual labels:  java9, jigsaw
graphql-java-codegen-gradle-plugin
Gradle plugin for graphql-java-codegen
Stars: ✭ 19 (-73.24%)
Mutual labels:  gradle-plugin
gradle-marytts-voicebuilding-plugin
A replacement for the legacy VoiceImportTools in MaryTTS
Stars: ✭ 14 (-80.28%)
Mutual labels:  gradle-plugin
webdriver-binaries-gradle-plugin
A Gradle plugin that downloads and caches WebDriver binaries specific to the OS the build runs on
Stars: ✭ 31 (-56.34%)
Mutual labels:  gradle-plugin
moko-network
Network components with codegeneration of rest api for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 107 (+50.7%)
Mutual labels:  gradle-plugin
scalatest-junit-runner
JUnit 5 runner for Scalatest
Stars: ✭ 30 (-57.75%)
Mutual labels:  gradle-plugin
harmonica
Kotlin Database Migration Tool. This tool makes it really easy to create table, index, add columns, and so on, with Kotlin DSL.
Stars: ✭ 123 (+73.24%)
Mutual labels:  gradle-plugin
gradle-versioner
Gradle Version Plugin. Generates semantic versions with git meta data per branch.
Stars: ✭ 25 (-64.79%)
Mutual labels:  gradle-plugin
xmake-gradle
A gradle plugin that integrates xmake seamlessly
Stars: ✭ 31 (-56.34%)
Mutual labels:  gradle-plugin
gradle-release-plugin
Gradle plugin providing very minimal release version numbering (Git-specific)
Stars: ✭ 43 (-39.44%)
Mutual labels:  gradle-plugin
jetbrains-gradle-plugins
Gradle plugins for Docker, Terraform and Liquibase.
Stars: ✭ 22 (-69.01%)
Mutual labels:  gradle-plugin
gretty
Advanced gradle plugin for running web-apps on jetty and tomcat.
Stars: ✭ 116 (+63.38%)
Mutual labels:  gradle-plugin
jigsaw-rpc
jigsaw-rpc is an RPC framework written in TypeScript under Node.js
Stars: ✭ 14 (-80.28%)
Mutual labels:  jigsaw
gradle-http-plugin
Gradle plugin providing support for using HttpBuilder-NG to make HTTP requests as Gradle Tasks.
Stars: ✭ 30 (-57.75%)
Mutual labels:  gradle-plugin
licenser
A simple license header manager for Gradle
Stars: ✭ 32 (-54.93%)
Mutual labels:  gradle-plugin
Grazel
A tool to migrate Android projects from Gradle to Bazel incrementally and automatically
Stars: ✭ 222 (+212.68%)
Mutual labels:  gradle-plugin
npm-publish
Gradle plugin for NPM package publishing. Allows for arbitrary publishing as well as seamless integration with Kotlin JS/MPP plugins.
Stars: ✭ 66 (-7.04%)
Mutual labels:  gradle-plugin
RapidMavenPushPlugin
A Gradle plugin : Upload Artifacts to Multi Maven Repository
Stars: ✭ 21 (-70.42%)
Mutual labels:  gradle-plugin
bye-bye-jetifier
Gradle Plugin to verify if you can keep Android Jetifier disabled
Stars: ✭ 173 (+143.66%)
Mutual labels:  gradle-plugin

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.

Features

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.

License

Apache License 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].