Ich möchte die FTP-Aufgabe in ant verwenden, und ich habe die entsprechenden JAR-Dateien gefunden und alles funktioniert gut. Ich habe die JAR-Dateien in einem "libs" -Verzeichnis neben den anderen im Build verwendeten Dateien abgelegt. Das einzige Problem ist, dass der Benutzer "ant -lib commons-net-ftp-2.0.jar" ausführen muss, um einen Build zu erstellen. Ich würde wirklich bevorzugen, dass es möglich wäre, "ant" ohne Argumente zu starten.Wie lade ich eine optionale Aufgabe in ant ohne -lib oder globale Installation?
Ich lese die ant optional tasks intallation page, ich sehe, dass es fünf Möglichkeiten gibt, wie man zusätzliche Bibliotheken in Ameisen laden kann, und keiner von ihnen ist wirklich, was ich suche. Ich möchte den Benutzer nicht zwingen, Änderungen an seinem System vorzunehmen, um diese Aufgabe auszuführen. Es sollte möglich sein, es einfach aus dem Verzeichnis "libs" im Quellordner unseres Produkts zu laden. Das bedeutet also, dass der globale CLASSPATH ebenfalls deaktiviert ist (was sowieso eine schlechte Idee ist).
Die letzte Option, wie in der Dokumentation erwähnt, ist der bevorzugte Ansatz ... Laden Sie die JAR-Dateien einzeln aus dem Build-Skript selbst. Ich habe das in der Vergangenheit mit den ant-contrib-Aufgaben und JUnit gemacht und möchte das hier tun, aber ich sehe nicht, wie ich das erreichen kann. Der FTP-Task unterstützt kein verschachteltes Klassenpfadelement und ich kenne die XML-Ressource nicht, die ich diese Bibliothek über einen Taskdef laden müsste. Wie kann ich die Bibliotheken aus ant laden?
Edit: Als Antwort auf die Antworten und Fragen, die bisher hier gepostet wurden, verwende ich die Ameise 1.7.1. Einen ftp Taskdef zu machen funktioniert definitiv nicht; dass führt den folgenden Fehler:
BUILD FAILED /my/path/build.xml:13: taskdef Klasse org.apache.tools.ant.taskdefs.optional.net.FTP nicht
Vielleicht finden liegt daran, dass der Klassenname falsch ist. Wie genau finde ich den Klassennamen, den ich verwenden soll, wenn ich nur eine JAR-Datei habe? Es ist nirgends dokumentiert, und ich konnte nichts in dem Glas selbst finden, das diesem Pfad ähnelte.
Ich dachte, dass eine andere Aufgabe, von der das FTP abhängig war, tun würde, aber ich bin mir nicht so sicher - das muss ich ausprobieren. – jim
Das gleiche für mich. Bei externen Aufgaben schließe ich normalerweise einen Klassenpfad im Taskdef ein, aber mit einigen internen optionalen Aufgaben (ssh, scp, scriptdef) habe ich keine bessere Lösung gefunden, als den Benutzer die JARs nach /home/.ant/lib kopieren zu lassen: -S – Olivier
Welche Version von Ant verwenden Sie? – jim