-
Notifications
You must be signed in to change notification settings - Fork 419
Description
Question here.
To date, we integrate the BIRT runtime into our application by using the BIRT Runtime zip artifact.
This zip contains several jars as regular dependencies, however interestingly, also a jar named org.eclipse.birt.runtime_4.x.jar
.
This jar contains many further dependencies in the good old "fat jar" manner, like guava, slf4j, cassandra and many more.
And because of the hidden nature of fat-jars, it is cumbersome to resolve conflicts with other dependencies of our software.
Currently, we do this by deleting stuff in the jar which we assume are not required but of course, this introduces some risks.
Is there an alternative for this approach? And if not, can we do better than that?
Ideally, BIRT would provide runtime artifacts which do not contain any fat jars.
And even better, the build artifact or its documentation would express which dependencies are optional
and safe to exclude (e.g. you only need the POI jars when you want to use the office emitters) or if required, which version ranges are acceptable in order to provide maximum compatibility and to enable the safe usage of jar-dependencies we provide (which has additional benefits like security aspects).