Skip to content

Commit 878a12f

Browse files
committed
#785 - define JPMS module names
## 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.core`). Details about this change can be found here: #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.core; [...] } ``` To: ```java module my.module { [...] requires org.incendo.cloud.core; [...] } ``` Closes #785
1 parent 3c83f9a commit 878a12f

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

gradle/build-logic/src/main/kotlin/CloudBaseConventions.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ import com.diffplug.gradle.spotless.SpotlessExtension
22
import net.kyori.indra.IndraExtension
33
import org.gradle.api.Plugin
44
import org.gradle.api.Project
5+
import org.gradle.api.tasks.bundling.Jar
6+
import org.gradle.kotlin.dsl.attributes
57
import org.gradle.kotlin.dsl.configure
68
import org.gradle.kotlin.dsl.dependencies
9+
import org.gradle.kotlin.dsl.withType
710
import org.incendo.cloudbuildlogic.CloudSpotlessExtension
811

912
class CloudBaseConventions : Plugin<Project> {
@@ -43,5 +46,11 @@ class CloudBaseConventions : Plugin<Project> {
4346

4447
"checkstyle"(libs.stylecheck)
4548
}
49+
50+
target.tasks.withType(Jar::class).configureEach {
51+
manifest {
52+
attributes("Automatic-Module-Name" to "%s.%s".format(target.group, target.name.replace('-', '.')))
53+
}
54+
}
4655
}
4756
}

0 commit comments

Comments
 (0)