Bei der Arbeit stellen wir ein Softwarepaket einer Java-Anwendung (von uns geschrieben) bereit, das viele externe Abhängigkeiten aufweist. Die meisten davon sind LGPL- und BSD-lizenzierte Bibliotheken von Drittanbietern, die als JAR-Archive vertrieben werden.
Derzeit stellen wir einen Test-Client für die Software bereit, der als einzelnes Java-Fat-Jar-Archiv verteilt wird und vom Maven-Assembly-Plugin erstellt wird. Dies bewirkt ungefähr Folgendes:
- Extrahieren Sie alle Abhängigkeiten
- bündeln Sie sie als ein einziges Glasarchiv
Alle Klassendateien werden extrahiert und dann mit unserer eigenen Anwendung in einer einzigen JAR-Datei gebündelt. Ich habe festgestellt, dass auch einige Dateien überschrieben werden, hauptsächlich LICENSE.txt-Dateien, weil sie denselben Namen haben.
Ich frage mich, ob dies korrekt ist und der LGPL-Lizenz entspricht. Was wäre ein besserer Weg, um die Software zu verbreiten? Wie wäre dieses spezielle Paket am besten organisiert?
Wir haben weder Quellcode direkt in unsere Quelldateien aufgenommen noch die Binärdateien berührt. Der Quellcode der Bibliotheken begleitet das gesamte Produkt. (Es ist Software, die intern verwendet wird, nicht für Kunden oder ähnliches bereitgestellt wird, aber ich denke, das spielt keine Rolle.)
PS: Ich habe die gleiche Frage zu Stack Overflow gestellt, und mir wurde vorgeschlagen, sie hier zu stellen.