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.).
Die Artifactory-Funktionalität kann mit dem Maven Lizenz-Validierungs-Plugin
emuliert werdenDas 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
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:
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 -
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.
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.
Sobald die Lizenz als Textdatei ausgegeben wurde, verwenden Sie ant
s xmltask Aufgabe, um die Lizenz als Artefakt hinzuzufügen.
Veröffentlichen Sie die modifizierte ivy.xml
und die Lizenz zurück zu Artifactory.
Verwenden Sie <ivy:retrieve/>
, um die Lizenz zusammen mit ihrer jar-Datei beim Bündeln mit Ihrem Build abzurufen.
Tags und Links maven nexus artifactory licensing repository