org.fuin.jpmsr:jpms-readiness-maven-plugin

Maven plugin that verifies the readiness of all dependencies in regard to the Java Platform Module System (JPMS) [PLUGIN].

License

License

Categories

Categories

Maven Build Tools
GroupId

GroupId

org.fuin.jpmsr
ArtifactId

ArtifactId

jpms-readiness-maven-plugin
Last Version

Last Version

0.2.1
Release Date

Release Date

Type

Type

maven-plugin
Description

Description

Maven plugin that verifies the readiness of all dependencies in regard to the Java Platform Module System (JPMS) [PLUGIN].
Project Organization

Project Organization

fuin.org (Germany)

Download jpms-readiness-maven-plugin

How to add to project

<plugin>
    <groupId>org.fuin.jpmsr</groupId>
    <artifactId>jpms-readiness-maven-plugin</artifactId>
    <version>0.2.1</version>
</plugin>

Dependencies

compile (3)

Group / Artifact Type Version
org.twdata.maven : mojo-executor jar 2.3.0
org.slf4j : slf4j-api jar 1.7.12
com.jcabi : jcabi-maven-slf4j jar 0.9

provided (3)

Group / Artifact Type Version
org.apache.maven : maven-core jar 3.5.4
org.apache.maven : maven-plugin-api jar 3.5.4
org.apache.maven.plugin-tools : maven-plugin-annotations jar 3.5.2

test (3)

Group / Artifact Type Version
junit : junit jar 4.12
org.assertj : assertj-core jar 3.10.0
nl.jqno.equalsverifier : equalsverifier jar 2.5.1

Project Modules

There are no modules declared in this project.

jpms-readiness-maven-plugin

Maven plugin that verifies the readiness of all dependencies in regard to the Java Platform Module System (JPMS)

Build Status Maven Central LGPLv3 License Java Development Kit 11

Background

Currently many libraries do not support Java modules. If you want to modularize your project, the libraries you depend on should

  • provide an automatic module name
  • or have a module-info

You can use this plugin to see which dependencies are compliant with this rule and which are not.

Run the plugin

Run the plugin in your project's root directory.

Either using Maven Wrapper:

./mvnw org.fuin.jpmsr:jpms-readiness-maven-plugin:0.2.1:verify

Or the classic Maven installation:

mvn org.fuin.jpmsr:jpms-readiness-maven-plugin:0.2.1:verify

Example output

The output should be similar to this example:

 [INFO] =============================================
 [INFO] Java Platform Module System (JPMS) Readiness:
 [INFO] =============================================
 [INFO] jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile => module-info
![WARNING] jakarta.ejb:jakarta.ejb-api:jar:3.2.6:compile => No module-info and no Automatic-Module-Name
 [INFO] jakarta.json:jakarta.json-api:jar:1.1.6:compile => module-info
 [INFO] jakarta.json.bind:jakarta.json.bind-api:jar:1.0.2:compile => module-info
![WARNING] jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile => No module-info and no Automatic-Module-Name
![WARNING] jakarta.mail:jakarta.mail-api:jar:1.6.4:compile => No module-info and no Automatic-Module-Name
 [INFO] jakarta.activation:jakarta.activation-api:jar:1.2.1:compile => Automatic-Module-Name
 [INFO] jakarta.validation:jakarta.validation-api:jar:2.0.2:compile => Automatic-Module-Name
 [INFO] jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile => Automatic-Module-Name
![WARNING] jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile => No module-info and no Automatic-Module-Name
 [INFO] jakarta.transaction:jakarta.transaction-api:jar:1.3.2:compile => Automatic-Module-Name
 [INFO] org.fuin:utils4j:jar:0.11.0-SNAPSHOT:compile => Automatic-Module-Name
 [INFO] jakarta.persistence:jakarta.persistence-api:jar:2.2.3:compile => Automatic-Module-Name
![WARNING] jakarta.inject:jakarta.inject-api:jar:1.0:compile => No module-info and no Automatic-Module-Name
 [INFO] =============================================

Snapshots

Snapshots can be found on the OSS Sonatype Snapshots Repository.

Add the following to your .m2/settings.xml (section "repositories") to enable snapshots in your Maven build:

<repository>
    <id>sonatype.oss.snapshots</id>
    <name>Sonatype OSS Snapshot Repository</name>
    <url>http://oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>

An additional entry to the "pluginRepositories" section is also required:

<pluginRepository>
    <id>sonatype.oss.snapshots</id>
    <name>Sonatype OSS Snapshot Repository</name>
    <url>http://oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</pluginRepository>
org.fuin.jpmsr

fuin.org

Versions

Version
0.2.1
0.2.0