Specify more granular Batik dependencies Batik-all is a strange artifact. It's POM declares dependencies on all the sub-JARs, but its JAR has all of the sub-jars repackaged. This results in multiple JARs with the same packages being added to consuming applications. This leads to problems for JPMS users. See [bug-65183]. The Ant build does not use batik-all, so the Maven and Gradle builds should not either.