So stellen Sie Artefakte in Nexus Repository Manager OSS 3 manuell bereit

76

Nach der Installation von Nexus Repository Manager OSS 3 wird keine Option Artifact Uploadzum Hochladen von Artefakten über eine Webseite angezeigt.

In Nexus Repository Manager OSS 2.13 besteht die Möglichkeit, diesen Vorgang auszuführen.

Kann mir jemand zeigen, wie Artefakte in das gehostete Repository in Nexus 3 hochgeladen werden können?

EDIT : Von 3.9.0 Version, diese Funktionalität implementiert.

Paweł Głowacz
quelle
1
In meiner Antwort hier habe ich beide Ansätze erklärt - für http und https.
Grajsek
17
Warum um alles in der Welt würden sie dieses wesentliche Stück Funktionalität weglassen?
Kees de Kooter
8
Da die Upload-GUI immer noch nicht Teil von Nexus 3 ist, haben wir eine einfache Lösung entwickelt, um die fehlende Benutzeroberfläche bereitzustellen. Sie können eine HTML-Seite in einem unformatierten Repository Ihrer Nexus3-Instanz hosten. Wenn Sie über den Browser auf diese Seite zugreifen, wird eine Upload-GUI bereitgestellt, die der in Nexus2 ähnelt. Das Projekt finden Sie auf GitHub mit ausführlicher Dokumentation. Die zum Zeitpunkt dieser Antwort veröffentlichte Version unterstützt auch den GAV-Stil und Roh-Uploads.
István Rábel

Antworten:

25

Dies ist in Nexus seit Version 3.9.0 implementiert.

  • Einloggen
  • Wählen Sie Hochladen

Geben Sie hier die Bildbeschreibung ein

  • Füllen Sie das Formular aus und laden Sie das Artefakt hoch

Geben Sie hier die Bildbeschreibung ein

Tobias Rath
quelle
Wir hatten 3.7 installiert und die Feature-Matrix sagte, dass dies existieren sollte (3.10 ist jetzt aktuell). Ich wurde verrückt, als ich versuchte herauszufinden, wie es implementiert wurde. Diese Antwort war sehr hilfreich. Ich würde dich 10 Mal abstimmen, wenn ich könnte.
John Glassman
Bower (gehostete) Repositories haben keine Upload-Funktion: /
Arkadi
@tobias Was ist der typische Wert für die Erweiterung?
Varun Verma
71

Ich verwende eine Maven-Bereitstellungsdatei.

mvn deploy:deploy-file -DgroupId=my.group.id \
    -DartifactId=my-artifact-id \
    -Dversion=1.0.0.1 \
    -Dpackaging=jar \
    -Dfile=foo.jar \
    -DgeneratePom=true \
    -DrepositoryId=my-repo \
    -Durl=http://my-nexus-server.com:8081/repository/maven-releases/

UPDATE: Wie in Kommentaren angegeben, verursachen Anführungszeichen in der URL NoSuchElementException.

Ich habe jedoch eine Serverkonfiguration in meinem Maven hinzugefügt (~ / .m2 / settings.xml).

<servers>
  <server>
    <id>my-repo</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

Verweise:

Maven Apache - Leitfaden für Gläser von Drittanbietern

bpedroso
quelle
Muss ich etwas aktivieren oder installieren, um es so bereitzustellen? Beim Versuch werden folgende Fehler angezeigt: 29. November 2016, 11:27:31 Uhr org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec INFO ausführen: E / A-Ausnahme (java.net.SocketException ) gefangen bei der Verarbeitung der Anfrage an {} -> 127.0.0.1:8081 : Rohrbruch und so weiter ...
Eray Tuncer
NUR reiner Maven. Haben Sie einen Proxy? Vielleicht müssen Sie localhost / 127.0.0.1 dort ignorieren / oder diese IP und Port sind korrekt? Ich werde nicht nach anderen Vorschlägen suchen, um diese Annahme zu lösen.
Bpedroso
1
@ErayTuncer In meinem Beispiel habe ich mit Nexus 3 validiert. Könnten Sie die vollständige Stapelverfolgung überschreiten?
Bpedroso
7
So entfernen Sie die NoSuchElementException: Entfernen Sie die Anführungszeichen aus dem Wert des Switches -Durl. Ich habe 2 Stunden gesucht.
SandorRacz
1
Vergessen Sie nicht, dieses "Server" -Schnipsel in das Element "<settings> </ settings>" zu packen, wenn Sie eine neue Datei settings.xml erstellen. Andernfalls wird dieser Abschnitt stillschweigend ignoriert.
Alex
43

Dies ist derzeit in der Benutzeroberfläche von Nexus 3 nicht implementiert (siehe https://issues.sonatype.org/browse/NEXUS-10121 ). Sie müssen curloder mvn deployoder eine andere Option verwenden.

Keith Starling
quelle
27
Mit der Zeit stellt sich heraus, dass dies eine MASSIVE PITA ist.
Demaniak
26

Sie können Artefakte über ihre nativen Veröffentlichungsfunktionen hochladen (z. B. Maven Deployment, npm Publish).

Sie können Artefakte auch über eine einfache Curl-Anforderung in "rohe" Repositorys hochladen, z

curl --fail -u admin:admin123 --upload-file foo.jar 'http://my-nexus-server.com:8081/repository/my-raw-repo/'
RCross
quelle
2
Ja, ich kann dies tun mvn deployund es funktioniert perfekt, aber ich habe nicht bemerkt, dass sie die Artifact UploadOption von der neuesten entfernt haben Nexus.
Paweł Głowacz
1
@ PawełGłowacz das Jira-Problem für die Upload-Funktionalität in 3.x ist hier: issue.sonatype.org/browse/NEXUS-10121
mvreijn
Lesen Sie die Man-Datei von curl über den --fail-Schalter - der nicht ausfallsicher ist
Caduceus
3

Mein Team hat ein Befehlszeilentool zum Hochladen von Artefakten in das Nexus 3.x-Repository erstellt. Vielleicht ist es für Sie hilfreich - Maven Artifacts Uploader

Ron Badur
quelle
1
Aber nur für Windows-Benutzer?
TOUDIdel
1
In diesem Moment ja
Ron Badur
1

Mein Team verwendet Gradle und Nexus OSS 3.5.2 ,

Ich habe eine Lösung gefunden : Laden Sie Artyfacts von locakhost hoch (ich habe die Nexus-Dokumentation überprüft und nichts über das Hochladen von Artefakten aus Ordnern gefunden) => Ich habe ein freigegebenes Verzeichnis (verwenden Sie Apache httpd ) und habe eines verbunden, um ein neues Nexus-Proxy-Repository zu erstellen. Wenn ich jetzt meine eigenen Artefakte hinzufügen möchte, kann ich diese in ein freigegebenes Verzeichnis auf meinem Remote-Server hochladen.

Vielleicht findet jemand meine Lösung nützlich: Geben Sie hier die Bildbeschreibung ein

Meine Frage lautet hier : Ist es möglich, Artefakte aus einem lokalen Ordner in Sonatype Nexus Repository Manager 3.x bereitzustellen?

kozmo
quelle
1

Für Windows:

mvn deploy:deploy-file -DgroupId=joda-time -DartifactId=joda-time -Dversion=2.7 -Dpackaging=jar -Dfile=joda-time-2.7.jar 
-DgeneratePom=true -DrepositoryId=[Your ID] -Durl=[YourURL]
Chinmoy
quelle
0

Um mvn deploy: deploy-file zu verwenden, muss ~. / M2 / settings.xml hinzugefügt werden

<settings>
  <servers>
    <server>
      <id>nexus-repo</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
</settings>

Befehl:

mvn deploy:deploy-file -DgroupId=com.example \
                                       -DartifactId=my-app \
                                       -Dversion=2.0.0 \
                                       -Dpackaging=jar \
                                       -Dfile=my-app.jar \
                                       -DgeneratePom=true \
                                       -DrepositoryId=nexus-repo \
                                       -Durl=http://localhost:8081/repository/maven-releases/
GolamMazid Sajib
quelle