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

8

Ich würde gerne wissen, ob der Nexus-Repository-Manager einen Lizenzmanager wie Artifactory enthält (mit diesem Plugin: Ссылка ).

Wenn es keine Möglichkeit gibt, dies in Nexus über ein Plugin zu tun, wie verwalten Sie die Lizenzen der Abhängigkeiten Ihres Projekts (mit Maven)?

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

    
Sandro Munda 10.07.2011, 09:02
quelle

3 Antworten

6

Die Artifactory-Funktionalität kann mit dem Maven Lizenz-Validierungs-Plugin

emuliert werden

Ссылка

Das praktische Problem bei diesen beiden Ansätzen ist, dass nur sehr wenige Maven Central-Module aktuelle Lizenzinformationen in ihren POMs haben. Aus dem, was ich sehen kann, ist dies eine großartige Idee, die hinter einer echten Lösung für das Problem der Bewertung der Lizenzkonformität Ihres Builds zurückbleibt ...

Meine ideale Lösung ist eine externe Gruppe von Prozessen, die den Inhalt des Nexus-Repositorys nach verfügbaren Lizenzinformationen durchsuchen. Diese Informationen werden dann verwendet, um die Procurement-Suite von Nexus Professional zu erstellen, um den Inhalt eines genehmigtes Repository zur Verwendung in der Version (Nicht-Entwicklungs-Builds).

Einige Binärdateien enthalten textuelle Lizenzdateien und alternativ könnten die zugehörigen Quellcode-Pakete auch nach Lizenz- und IP-Informationen durchsucht werden. Zur Durchführung dieser Aufgabe stehen eine Reihe von Drittanbieter-Tools zur Verfügung. Die, die ich in Betracht gezogen habe, sind:

Fazit: Bis Maven Central zuverlässige Metadaten zur Modullizenzierung zur Verfügung stellen kann, denke ich, dass Lösungen für dieses Problem in hohem Maße kundenspezifisch und suboptimal sein werden

    
Mark O'Connor 11.07.2011, 18:40
quelle
1

Der Ansatz von Artifactory ist etwas anders, da rohe Artefakt-Metadaten nur als Ausgangspunkt dienen, aber am Ende des Tages können Benutzer fehlende / falsche Lizenzinformationen ergänzen und ergänzen:

  1. Zuerst werden POM (einschließlich aller Eltern-POMs) oder Ivy-Deskriptoren verwendet, um heuristische Lizenzinformationen zu extrahieren. Dieser automatische Erkennungsschritt ist rein optional.
  2. Diese Lizenzinformationen werden dann anhand ihrer Prüfsumme an Artefakte angehängt und können von Benutzern vollständig bearbeitet werden. Administratoren können die Lizenzdetails aktualisieren, die während ihrer Lebensdauer bei dem Artefakt 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 vorkonfigurierte Adressen gesendet.

Damit können Sie Änderungen / Ergänzungen neuer Abhängigkeiten (und ihrer jeweiligen Lizenzen) bearbeiten, sobald sie vom Build-Prozess übernommen und übernommen wurden.

Ein weiterer wichtiger Unterschied ist die Fähigkeit, Artefakte mit Mehrfachlizenzen zu behandeln, bei denen nur eine der Lizenzen genehmigt ist und die anderen nicht.

Sie können hier mehr darüber lesen -

Ссылка

    
Yoav Landman 26.09.2011 08:49
quelle
0

Eine angepasste Lösung zur Verwendung mit Artifactory + Ivy + ant besteht darin, jedes Modul nach Lizenzinformationen zu durchsuchen. Wenn die Lizenz gefunden wurde, füllen Sie diese Lizenzdatei in Artifactory und aktualisieren Sie sie in ivy.xml , damit sie als veröffentlichtes Artefakt verfügbar ist. Rufen Sie dann <ivy:retrieve/> auf, um die Lizenz zusammen mit ihrer JAR-Datei abzurufen.

Die Lizenz kann innerhalb des Moduls ivy.xml als URL angegeben werden. Verwenden Sie in diesem Fall ant 's get task, um die Lizenz herunterzuladen und in eine Textdatei zu schreiben.

%Vor%

Alternativ kann die Lizenz als Textdatei in die .jar -Datei des Moduls eingefügt werden. Verwenden Sie in diesem Fall ant 's unjar task, um die Lizenz zu extrahieren und in eine Textdatei zu schreiben.

%Vor%

Sobald die Lizenz als Textdatei ausgegeben wurde, verwenden Sie ant s xmltask Aufgabe, um die Lizenz als Artefakt hinzuzufügen.

%Vor%

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

%Vor%

Verwenden Sie <ivy:retrieve/> , um die Lizenz zusammen mit ihrer jar-Datei beim Bündeln mit Ihrem Build abzurufen.

%Vor%     
nohup 22.06.2012 00:47
quelle