Description
Even with plugins being separate Gradle projects (see #6602), in the end when running ORT via scripts generated by Gradle's Java Application Plugin everything ends up in a single classpath. That is problematic as different plugins / core tools of ORT might require different versions of the same dependency. This is already the case with the Bundler
analyzer and the PdfTemplateReporter
that both depend on JRuby (versions 9.4.2.0 and 9.3.8.0 respectively), and forcing them to use the same JRuby version causes weird issues.
A proper solution would probably be to build all plugins as fat-JARs and not put them on the application classpath by default, but using a URLClassLoader
that inherits from the application classloader, and pass that to ServiceLoader.load()
.