Hi Gary, On Mon, 19 Jun 2023 at 15:01, Gary Gregory <garydgreg...@gmail.com> wrote: > > I like the idea of not having any optional dependencies by using Maven > modules.
I would also like to remove optional dependencies entirely from the published POM, but I think it is impossible with the current Maven plugins. My proposal is less ambitious: we would still have `com.lmax:disruptor` as optional dependency of `log4j-core`, but we could also have a `log4j-starter-async` that depends (non-optionally) on `com.lmax:disruptor` and `log4j-core`. This way users don't have to manually manage the version of `com.lmax:disruptor`. Removing optional dependencies entirely is possible in Gradle: e.g. `spring-boot` has a lot of optional dependencies (cf. build.gradle[1]), but they don't appear in the published POM (cf. MvnRepository[2]). Piotr [1] https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot/build.gradle [2] https://mvnrepository.com/artifact/org.springframework.boot/spring-boot/3.1.0