10 Stimmen

Wie verwalten Sie die Lizenzen der Abhängigkeiten (Bibliotheken) Ihres Projekts?

Ich möchte gerne wissen, ob der Nexus-Repository-Manager einen Lizenzmanager wie Artifactory (mit diesem Plugin: http://wiki.jfrog.org/confluence/display/RTF/License+Control) enthält.

Wenn es keinen Weg gibt, das in Nexus über ein Plugin zu tun, wie verwalten Sie dann die Lizenzen der Abhängigkeiten Ihres Projekts (mit Maven) ?

Zum Beispiel kann ich für ein kommerzielles Projekt keine GPL-Bibliothek in das endgültige Artefakt (.jar, .war, etc.) aufnehmen.

0 Stimmen

Sonatype hat ein neues Produkt für Lizenzverwaltung und Compliance namens "Insight" sonatype.com/Products/Sonatype-Insight/Development-Insight gestartet.

7voto

Mark O'Connor Punkte 74233

Die Funktionalität von Artifactory kann mit dem Maven-Lizenzvalidierungs-Plugin emuliert werden

http://code.google.com/p/maven-license-validator-plugin/

Das praktische Problem bei beiden Ansätzen ist, dass nur sehr wenige Maven Central-Module aktuelle Lizenzinformationen in ihren POMs haben. Soweit ich das sehen kann, handelt es sich also um eine großartige Idee, die jedoch keine echte Lösung für das Problem der Beurteilung der Lizenzkonformität Ihres Builds darstellt...

Meine ideale Lösung ist ein externer Satz von Prozessen, die den Inhalt des Nexus-Repositorys nach verfügbaren Lizenzinformationen durchsuchen. Diese Informationen werden dann verwendet, um das Beschaffungspaket von Nexus Professional zu steuern, um den Inhalt eines genehmigten Repositorys zur Verwendung in Releases (nicht-Entwicklungsumgebungen) zu kontrollieren.

Einige Binärdateien enthalten Textdateien mit Lizenzinformationen und alternativ könnten auch die zugehörigen Quellcode-Pakete auf Lizenz- und IP-Informationen durchsucht werden. Es gibt mehrere Tools von Drittanbietern, die diese Aufgabe durchführen können. Diejenigen, die ich in Betracht ziehe, sind:

Zusammenfassend lässt sich sagen, dass, solange Maven Central keine zuverlässigen Metadaten zu Modullizenzen bereitstellen kann, ich der Meinung bin, dass Lösungen für dieses Problem weiterhin stark angepasst und suboptimal bleiben werden

1voto

Yoav Landman Punkte 1195

Der von Artifactory gewählte Ansatz ist etwas anders, da Metadaten von Rohartefakten nur als Ausgangspunkt verwendet werden, aber am Ende können Benutzer fehlende/falsche Lizenzinformationen vervollständigen und korrigieren:

  1. Zu Beginn werden das POM (einschließlich aller übergeordneten POMs) oder die Ivy-Deskriptoren verwendet, um heuristische Lizenzinformationen zu extrahieren. Dieser automatische Entdeckungsschritt ist rein optional.
  2. Diese Lizenzinformationen werden dann an Artefakte angehängt, basierend auf ihrem Prüfsumme, und können vollständig von Benutzern bearbeitet werden. Administratoren können die Lizenzdetails aktualisieren, die mit dem Artefakt für seine Lebensdauer erhalten bleiben.
  3. Jede Lizenz kann gemäß einer globalen Richtlinie genehmigt oder nicht genehmigt werden.
  4. Zur Bereitstellungszeit werden die Lizenzinformationen aller Abhängigkeiten gelesen - wenn nicht genehmigte oder unbekannte Lizenzen gefunden werden, wird eine E-Mail-Benachrichtigung mit den Informationen an vordefinierte Adressen gesendet.

Dies ermöglicht es Ihnen, mit Änderungen/Neuzugängen von neuen Abhängigkeiten (und deren jeweiligen Lizenzen) umzugehen, sobald sie erfasst und vom Build-Prozess erkannt werden.

Ein weiterer wichtiger Unterschied besteht darin, dass Artefakte mit mehreren Lizenzen behandelt werden können, wobei nur eine der Lizenzen genehmigt und die anderen nicht genehmigt sind.

Weitere Informationen dazu finden Sie hier -

http://wiki.jfrog.org/confluence/display/RTF/License+Control

2 Stimmen

Dies spricht nicht die ursprüngliche Frage an und ist einfach ein Marketing-Vorschlag für Artifactory. Es scheint, als ob der Benutzer bereits mit den Angeboten von JFrog vertraut ist und speziell nach Nexus-Alternativen fragte.

0voto

nohup Punkte 487

Eine individualisierte Lösung für die Verwendung mit Artifactory + Ivy + ant besteht darin, jedes Modul nach Lizenzinformationen zu durchsuchen. Wenn die Lizenz gefunden wird, fügen Sie diese Lizenzdatei in Artifactory ein und aktualisieren Sie die ivy.xml, damit sie als veröffentlichtes Artefakt verfügbar ist. Rufen Sie dann auf, um die Lizenz gemeinsam mit ihrer JAR-Datei abzurufen.

Die Lizenz kann innerhalb der ivy.xml des Moduls als URL angegeben werden. In diesem Fall verwenden Sie die Aufgabe get von ant, um die Lizenz herunterzuladen und in eine Textdatei zu schreiben.

[innerhalb von log4j's ivy.xml als Beispiel]

   ...

Alternativ kann die Lizenz als Textdatei innerhalb der .jar Datei des Moduls enthalten sein. In diesem Fall verwenden Sie die Aufgabe unjar von ant, um die Lizenz zu extrahieren und in eine Textdatei zu schreiben.

[innerhalb von junit's .jar Datei als Beispiel]
 junit-4.8.2.jar/LICENSE.txt

Nachdem die Lizenz als Textdatei geschrieben wurde, verwenden Sie die Aufgabe xmltask von ant, um die Lizenz als Artefakt hinzuzufügen.

[innerhalb von log4j's ivy.xml als Beispiel]

Veröffentlichen Sie die modifizierte ivy.xml und die Lizenz zurück in Artifactory.

Verwenden Sie , um die Lizenz zusammen mit ihrer JAR-Datei abzurufen, wenn Sie sie mit Ihrem Build bündeln.

0 Stimmen

Auch off topic. Der Benutzer fragt nach Maven/Nexus-Alternativen - nicht nach Erklärungen zu Artifactory.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X