Skip to content

Commit c8eae6a

Browse files
committed
define JPMS module names
_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>.<jarBaseName>` (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; [...] } ```
1 parent 152a2db commit c8eae6a

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

gradle/build-logic/src/main/kotlin/conventions.base.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,11 @@ dependencies {
3838

3939
/* Disable checkstyle on tests */
4040
gradle.startParameter.excludedTaskNames.add("checkstyleTest")
41+
42+
tasks {
43+
jar {
44+
manifest {
45+
attributes("Automatic-Module-Name" to "%s.%s".format(project.group, project.name.replace('-', '.')))
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)