Skip to content

Glavo/module-info-compiler

Repository files navigation

Module Info Compiler

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.

Usage

Gradle Plugin

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

Use as a CLI tool

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> 

Added as a Maven dependency

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")

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages