Softwarepaket mit LGPL-Bibliotheken als Java Fat-Jar Archive

8

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.

Scravy
quelle

Antworten:

2

Da Sie Maven verwenden, empfehle ich, zum Schatten-Plugin zu wechseln , um Ihre JAR zu erstellen. Es kann so konfiguriert werden, dass es automatisch mehrere "Standard" -Lizenzdateien verarbeitet (siehe Abschnitt über Ressourcentransformatoren) und Sie warnt, wenn Ihre Abhängigkeiten überlappende Klassen haben.

kdgregory
quelle
1

Dies ist wirklich eine schwierige Angelegenheit, die mit einem Anwalt besprochen werden sollte. Wie auch immer, das Überschreiben der LICENSE.txt-Dateien (wodurch alle bis auf eine effektiv eliminiert werden) ist definitiv ein No-Go. Das Umbenennen in Foo-LICENSE.txt, Bar-License.txt ist der erste Schritt, den Sie sofort ausführen sollten. In Bezug auf die LGPL kann es ausreichen, Anweisungen zum Ersetzen der Bibliothek mit dem Fatjar anzubieten, um Abschnitt 4e der LGPL zu erfüllen (fragen Sie Ihren Anwalt). Wenn es nicht möglich ist, den Anwalt zu fragen, kann es eine Alternative sein, den Autor direkt um Erlaubnis zu bitten, dies so zu tun.

user281377
quelle