gradlex-org / extra-java-module-info

A Gradle 6.8+ plugin to use legacy Java libraries as Java Modules in a modular Java project
Apache License 2.0
104 stars 6 forks source link

Support addressing classified Jar via coordinates #130

Closed jjohannes closed 1 month ago

jjohannes commented 4 months ago

For example, to patch io.netty:netty-transport-native-epoll with classifier linux-x86_64 you have to use the file name:

module("netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar", "io.netty.transport.epoll.linux.x86_64")

It should be possible to do it like this:

module("io.netty:netty-transport-native-epoll|linux-x86_64", "io.netty.transport.epoll.linux.x86_64")
jjohannes commented 4 months ago

Related: #129

Vampire commented 4 months ago

It should be possible to do it like this:

Don't forget a version for version-catalog accessor usage :-) Maybe a viable alternative: module("io.netty:netty-transport-native-epoll", "io.netty.transport.epoll.linux.x86_64") { classifier = "linux-x86_64" } or something like that.

jjohannes commented 1 month ago

The feature is implemented with the notation proposed in the description. Follwoing the same "identifier" notation used in java-module-dependencies.

Generally, I would agree that we do to much "special" strings instead of a nicer DSL. For now, I want to stay consistent with things we already have in this and the other GradleX Modules Plugins.

Maybe something to revisit if we should do a 2.x with a reworked DSL.