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.


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


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


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


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/'

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


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?


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]

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/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.