Frage

Ich versuche, einen Artefakt zu einem Remote-Repository zugänglich via scp und ein Problem mit wiederholten Aufforderungen Passwort zu implementieren. Mein settings.xml enthält dieses Fragment:

<servers>
    <server>
        <id>example.com</id>
        <username>myusername</username>
        <password>mypassword</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
        <configuration>
        </configuration>
    </server>
</servers>

Die Kommandozeile Interaktion sieht wie folgt aus:

$ mvn deploy:deploy-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.1.0 -DrepositoryId=example.com -Durl=scp://example.com/maven2/
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'deploy'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [deploy:deploy-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [deploy:deploy-file {execution: default-cli}]
Keyboard interactive required, supplied password is ignored
Password: : mypassword
Uploading: scp://example.com/maven2//com/oracle/ojdbc6/11.2.0.1.0/ojdbc6-11.2.0.1.0.jar
2061K uploaded  (ojdbc6-11.2.0.1.0.jar)
[INFO] Retrieving previous metadata from example.com
Keyboard interactive required, supplied password is ignored
Password: : mypassword
[INFO] repository metadata for: 'artifact com.oracle:ojdbc6' could not be found on repository: example.com, so will be created
[INFO] Uploading repository metadata for: 'artifact com.oracle:ojdbc6'
Keyboard interactive required, supplied password is ignored
Password: : mypassword
[INFO] Uploading project information for ojdbc6 11.2.0.1.0
Keyboard interactive required, supplied password is ignored
Password: : mypassword
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30 seconds
[INFO] Finished at: Thu Sep 02 13:03:33 CEST 2010
[INFO] Final Memory: 5M/90M
[INFO] ------------------------------------------------------------------------

Es gibt mehrere Probleme hier:

  1. Ich bin nach einem Passwort gefragt, obwohl es in der settings.xml angegeben
  2. Das Passwort wird Echo zurück auf der Konsole
  3. Es ist nicht das Kennwort erinnern und stattdessen fragt mich 4 mal.

Wie kann ich configure Maven, so dass es entweder ein Passwort aus settings.xml verwendet oder fragt mich einmal ohne mein Passwort auf den Bildschirm Echo?

Edit: Dies war auf Ubuntu Linux, ein Kollege gerade das gleiche Problem auf Windows XP wiedergegeben. das Repository auf einem lokalen Pfad unter Windows nicht möglich ist, auf der Suche Ich bin immer noch nach einer Lösung.

Als Montag
War es hilfreich?

Lösung 4

Wir haben seit installiert Nexus als Repository-Manager und sind über die Web-Schnittstelle Dritte Gläser hochladen.

Andere Tipps

Ich fand das folgende auf der Maven-Benutzerliste:

die sshd auf dem Server verwendet PasswordAuthentication no. Nach Umstellung auf meinen Maven-Config funktioniert yes.

Haben Sie entweder die eingestellte RepositoryID in Ihrem pom den korrekten Server-Eintrag aus der settings.xml zu verwenden, verursacht es, wie Sie, dass nicht gesetzt sieht so verwendet er die ID: Remote-Repository. oder haben Sie die settings.xml entsprechend geändert.

Als Abhilfe kann, ich bin zur Zeit die Remote-Repository Montag sshfs und anschließend eine Datei-URL in dem Maven-Befehl:

$ sudo adduser jh fuse
$ sudo mkdir -p /mnt/example.com/maven2
$ sudo chown -R jh:jh /mnt/example.com
$ sshfs username@example.com:/maven2 /mnt/example.com/maven2
$ mvn deploy:deploy-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.1.0 -Durl=file:///mnt/example.com/maven2/repository/

, um den Server in settings.xml Konfiguration ist nicht erforderlich, in diesem Fall muss der RepositoryID nicht auf der Kommandozeile angegeben werden, und ich Shell-Auto-Vervollständigung auf der Datei-URL verwenden können.

würde ich immer noch daran interessiert, wenn jemand das Problem reproduzieren kann, oder eine Lösung mit maven Standards vor.

Ich habe keine exakte Lösung haben, aber zumindest die folgenden Werke:

Erstellen Sie einen Server-Eintrag in der Datei ~ / .m2 / settings.xml:

<server>
  <id>example-dist</id>
  <username>myusername</username>
  <password>ignored</password>
</server>

Führen Sie die deploy oder bereitstellen: deploy-Datei wie folgt:

mvn deploy -DrepositoryId=example-dist

Sie werden nach dem Passwort für den angegebenen Benutzernamen gefragt werden -. Das Passwort in der settings.xml ignoriert

Wenn Sie keine Passwörter liefern jedes Mal möchten, können Sie dies durch einen SSH-Schlüssel erzeugt ssh-keygen. Die erzeugte öffentliche Schlüssel Sie in den authorized_keys-Dateien auf dem Verteilungsserver speichern müssen (für eine bessere Erklärung finden Sie einige Tutorials im Internet oder der Manpage).

Dieser Fehler scheint verwendet. http://jira.codehaus.org/browse/WAGON-323 Im ist immer die Meldung „Tastatur interaktiv erforderlich, geliefert Kennwort wird ignoriert“ - auch mit Wagen-ssh-2.4. Versucht, Satz <interactiveMode>false</interactiveMode> aber dann nicht Auth sofort.

Wie pro @ Gerbrand Antwort, können Sie Benutzerdaten mit SSH-Schlüssel bereitstellt überspringen. Die Schritte sind die folgenden:

  1. Wenn Sie noch keinen haben, erzeugt ein privates / öffentliches Schlüsselpaar mit ssh-keygen. Angenommen, Sie haben die privaten Schlüssel in /home/user/.ssh/id_rsa speichern

  2. Kopieren Sie den öffentlichen Schlüssel zum Zielserver mit ssh-copy-id -i /home/user/.ssh/id_rsa USER@serverhostname

  3. Ändern Sie Ihre settings.xml Ihre Schlüssel zu verwenden, statt Passwort

    <server>
        <id>serverhostname</id>
        <username>USER</username>
        <privateKey>${user.home}/.ssh/id_rsa</privateKey>
        <!-- Note there is no password tag specified -->
    </server>
    

Sie das nächste Mal mit dem Server über Maven Login benötigen, wird kein Passwort angefordert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top