A tool for compiling module-info.java for Java alone.
It can easily compile module-info.java for your Java 8 project to fit JPMS without complicated module path configuration.
It can be used as a dependency library, as a command line tool, or as a Gradle plugin.
It only parses the syntax of module-info.java without checking the actual module,
so it compiles without configuring the module path.
This tool does not depend on javac, it can run on Java 8 or higher, and you can configure the major version of the target class file.
Using the plugins:
Groovy DSL:
plugins {
  id "org.glavo.compile-module-info-plugin" version "2.0"
}Kotlin DSL:
plugins {
  id("org.glavo.compile-module-info-plugin") version "2.0"
}It takes over compiling module-info.java, so you can easily mix module-info.java in your Java 8 project.
You can also do some configuration like this:
tasks.named<org.glavo.mic.tasks.CompileModuleInfo>("compileModuleInfo") {
    targetCompatibility     = 9             // Optional, defaults to 9
    encoding                = "UTF-8"       // Optional, defaults to UTF-8
    moduleVersion           = "1.0.0"       // Optional
    moduleMainClass         = "simple.Main" // Optional
}Here is a sample project: Glavo/compile-module-info-sample
Download the jar from the release page,
run it with java -jar module-info-compiler.jar.
The parameters it accepts are as follows:
Usage: gmic [-target <target compatibility>] [-main-class <module main class>] [-module-version <module version>] <source file> <target file>
This tool has been published on Maven Central, you can add dependencies to it like this:
Maven:
<dependency>
    <groupId>org.glavo</groupId>
    <artifactId>module-info-compiler</artifactId>
    <version>2.0</version>
</dependency>Gradle:
implementation("org.glavo:module-info-compiler:2.0")