2010-03-03 20 views
17

Ich muss eine Kriegsdatei über scp kopieren.Ant scp Aufgabe funktioniert nicht, auch mit jsch auf ant/lib

Ich habe hinzugefügt, die jsch-0.1.42.jar-$ANT_HOME/lib aber ich bin immer noch diesen Fehler:

Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.Scp was not found. This looks like one of Ant's optional components.

Dies ist das Ergebnis von ant -diagnostics nur für den Fall ausgeführt wird:

http://gist.github.com/320859

+0

Sie haben jsch auf dem Klassenpfad zweimal, wählen Sie eine jsch-0.1.29.jar (153401 Bytes) jsch-0.1.42.jar (185746 Bytes) –

+0

ja, es funktioniert nicht mit jedem von ihnen. –

Antwort

14

Das sieht aus wie Ihr Problem, von der Spitze der Diagnose:

optionale Aufgaben: nicht verfügbar

Ihr Verzeichnis $ ANT_HOME/lib fehlt amt-jsch.jar, aus dem Ihre fehlende Klasse stammt.

Ich bin nicht sicher, wie das passiert ist - ich installiere immer Ant aus der ZIP-Datei auf der download site, die alle optionalen Aufgaben enthält. Wenn Sie Ant aus einem Linux-Paket installiert haben, überprüfen Sie, ob für die optionalen Aufgaben ein separates Paket vorhanden ist.

Sobald Sie die optionalen Aufgaben installiert haben, würde ich die alte Version von jsch.jar löschen, wie @trashgod suggeriert.

+0

Das hat es gelöst. Danke –

+4

Wenn Sie die "Ameise" gebündelt mit MacOSX Lion 10.7+ verwenden, wird sie nicht mit ant-jsch.jar geliefert. Das Herunterladen einer Kopie der offiziellen Ameise und das Kopieren des ant-jsch.jar in dein ~/.ant/lib/zusammen mit dem jsch.jar selbst hat das für mich erledigt. –

14

Ich hatte das gleiche Problem und reparierte es! Denken Sie daran, Sie brauchen BOTHant-jsch.jar (native von Ant oder Java-Installation) und aktualisiert jsch (in meinem Fall war es jsch-0.1.46.jar) in Ant-lib dir.

Sie benötigen die neueste jsch.jar von http://www.jcraft.com/jsch/ zu laden, und fügen Sie Ordner LIBS (aber ant-jsch.jar nicht ersetzen).

Der Fehler viele Entwickler tun:

  1. ant-jsch.jar veraltet (in diesem Fall <scp> Aufgabe für ant unbekannt ist)
  2. Versionen einstellen Bibliotheken, so ant-jsch.jar und jsch kompatibel sind.
  3. jsch existiert nicht oder in ant lib dir veraltet
  4. Mutter ant-jsch.jar ersetzt mit jsch (ich es tat ...)

In den letzten zwei Fällen Ameise weiß scp Befehl, aber sagt es ist nicht verfügbar.

+0

Und wenn Dinge immer noch nicht funktionieren, wie es mir passiert ist, beachten Sie, dass es Versionsinkompatibilitäten gibt. Aktualisieren Sie die Ameise, stellen Sie sicher, dass ant-jsch vorhanden ist, und rüsten Sie jsch auf den neuesten Stand auf. – dgorur

+0

Hilft nicht bei der Verwendung von 'mvn antrun: run'. Versuchend, beide ant-jsch-1.9.2 und jsch-0.1.54 zu verwenden, aber es gibt Fehler. – zygimantus