I have a java dropwizard project using gradle 7.3, with a lot of internal libraries as dependencies to the project. The internal libraries pollute my project’s classpath and I want to exclude all transitive dependencies in gradle groovy dsl as below:
configurations.all {
transitive = false
}
The problem is this would exclude transitives from dropwizard project itself that I would like without declaring them explicitly.
One way is to all transitive = false
block to all the internal dependencies but there are so many and that doesn’t seem that elegant and I want to avoid that since I need to add that block every time I add a new dependency.
I basically want to exclude all transitive dependencies from all declared dependencies except from the group “io.dropwizard”.
Is there any way to achieve this with a small block of code in one place? Something like adding a condition for group id in the above configurations.all
block or similar?
Also, is there a way to filter transitives based on group id as well? For example, I might want to be able to exclude all transitive dependencies from an internal library except the transitives that belong to the group id com.mycompany
. Adding exclude statements for all other dependencies will be very messy in this case, and I need to be aware of the dependencies that I need to exclude.