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

Reply via email to