Skip to content

Conversation

@Djaytan
Copy link
Contributor

@Djaytan Djaytan commented Jan 12, 2025

This change is similar to Incendo/cloud#787

Summary

The goal of this change is to encourage Gradle to put the framework's Jar files in the module path instead of the classpath. For that, we need to explicitly define the Automatic-Module-Name attribute in the MANIFEST.MF files in framework's Jar files (source: https://docs.gradle.org/current/userguide/java_library_plugin.html#using_libraries_that_are_not_modules).

The newly added attribute follows this format: <groupId>.<moduleName> (e.g. org.incendo.cloud.paper).

Details about this change can be found here: Incendo/cloud#785.

Impact

There is no impact nor on maintainer side nor or consumer one not relying on JPMS.

For the ones already relying on JPMS (e.g. Maven users), they will just have to adapt the references in their module-info.java files as follow:

From:

module my.module {
  [...]
  requires cloud.paper;
  [...]
}

To:

module my.module {
  [...]
  requires org.incendo.cloud.paper;
  [...]
}

_This change is similar to https://github.com/Incendo/cloud/pull/787_

## Summary

The goal of this change is to encourage Gradle to put the framework's Jar files in the module path instead of the classpath. For that, we need to explicitly define the `Automatic-Module-Name` attribute in the `MANIFEST.MF` files in framework's Jar files (source: https://docs.gradle.org/current/userguide/java_library_plugin.html#using_libraries_that_are_not_modules).

The newly added attribute follows this format: `<groupId>.<moduleName>` (e.g. `org.incendo.cloud.paper`).

Details about this change can be found here: Incendo/cloud#785.

## Impact

There is no impact nor on maintainer side nor or consumer one not relying on JPMS.

For the ones already relying on JPMS (e.g. Maven users), they will just have to adapt the references in their `module-info.java` files as follow:

From:
```java
module my.module {
  [...]
  requires cloud.paper;
  [...]
}
```

To:
```java
module my.module {
  [...]
  requires org.incendo.cloud.paper;
  [...]
}
```
@Djaytan Djaytan force-pushed the build/define-jpms-module-names branch from c8eae6a to 63ad869 Compare January 12, 2025 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant