Konfigurieren von Ivy für Ant build
Momentan habe ich ANT_HOME
sich an /home/<myuser>/ant/1.8.4/ant-1.8.4
.
Ich habe gerade heruntergeladen der Apache-Ivy-tarball enthält die Abhängigkeiten. Ich zog es /home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1
.
Habe ich dann kopiert /home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1/lib/*.jar
zu ANT_HOME/lib
. Wenn mein Verständnis von, wie die Ameise arbeitet mit plugins/extensions korrekt ist, dann Ant-sollten nun in der Lage sein, um Zugriff auf alle Ivy ' s Aufgaben während der Laufzeit.
Meine nächste Frage ist, wie definiere ich Ivy Aufgaben in meinem Ant-buildfile? Sagen, das ich verwenden möchte ivy-retrieve
ivy-resolve
und ivy-publish
Aufgaben. Was sind all die Konfigurationen, die ich tun müssen (in der XML), um diese Aufgaben zu arbeiten, wenn ich mein Ant-build von der Befehl-Linie (ich will nicht bauen, werden durch die Ant-Eclipse-plugin). Vielen Dank im Voraus!
InformationsquelleAutor der Frage IAmYourFaja | 2012-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst müssen Sie definieren eine
<taskdef>
auf die Ivy-tasks.Werden, die Ihnen Zugriff auf die Ivy-tasks. Sie würde mit diesen Aufgaben wie diese:
Das problem ist, dass Ihr Efeu Aufgaben-Namen kollidieren könnten, mit anderen Ant-tasks. Es gibt zum Beispiel ein Efeu Aufgabe
<report>
. Um dieses Problem zu lösen, können Sie eine Ivy-namespace. Das zu tun, setzen Sie eine Referenz in Ihrer namespace in der<project>
Person wie diese:Nun, wenn Sie definieren die Ivy-tasks, die Sie verwenden können, dass
antlib:org.apache.ivy.ant
Verweis auf Ihreivy
namespace. Gleiche taskdef wie vorher, aber mituri
Feld:Durch die Art und Weise, es gibt nichts besonderes darüber, dass
uri
. Ich konnte dies getan haben:Der Punkt ist, jetzt können Sie Präfix Ihre Aufgabe-Namen mit
ivy:
. Stattdessen:Können Sie jetzt tun:
Und das ist, wie Sie Zugang zu Ihrem Ivy Ant-tasks.
Nun, Sie haben Zugriff auf Ihre Ivy Ant-tasks, die Sie brauchen, um zu definieren, eine
ivysettings.xml
Datei und verwenden Sie die<ivy:settings/>
Aufgabe zu Punkt gibt es noch:Gibt es einen Standard -
ivysettings.xml
- Datei eingebettet sind, in Ivy, die Sie auf das world wide Maven-repository-system. Wenn Sie nicht über eine unternehmensweite Maven-repository, dann können Sie die Standardeinstellungivysettings.xml
Datei:Das ist ziemlich einfach.
Sobald Sie das getan haben, müssen Sie zum Lesen und beheben Ihre
ivy.xml
- Datei, die sitzt meist in der Wurzel von Ihrem Projekt im selben Verzeichnis wie Ihrebuild.xml
Datei.Grundsätzlich Ihre
ivy.xml
- Datei enthält Verweise auf die Dritten Gläser Sie mitnehmen möchten, in Ihr Projekt. Zum Beispiel:Was dies sagt, ist, ich brauche die
log4j.jar
(Version 1.2.17) für die Zusammenstellung (und für die Zusammenstellung der tests auch) und ich brauchejunit.jar
(revision.4.10) für die Zusammenstellung von meinem test-code.Den
compile->default
ist eine Zuordnung von meinecompile
Konfiguration von Maven istdefault
Konfiguration (die sagt, ich will einfach nur die Jar und andere Gläser, es könnte davon abhängen.Wo ist nicht meine
compile
Konfiguration kommen? Ich definiere es in meinemivy.xml
. Es gibt zehn standard-Konfigurationen. Dies gilt auch in Ihremivy.xml
Datei:Können Sie alle Namen der Konfiguration, die Sie wollen, aber diese Karte, um die Standard-Maven-Konfigurationen und sind weit verbreitet.
Sobald Sie Ihre
ivy.xml
- Datei definiert, die Sie verwenden können<ivy.resolve>
zu lösen, Abhängigkeiten:Wir haben also die folgenden:
<taskdef>
in Ihrembuild.xml
zu übernehmen Ivy Ant-tasks in Ihrem build.<ivy:settings>
zu konfigurieren Ivy.<ivy:resolve/>
zu Lesen in Ihremivy.xml
- Datei und lösen Sie Ihre Drittanbieter-jar-Abhängigkeiten.Nun, werden Sie wahrscheinlich wollen, um tatsächlich mit diesen jar-Dateien. Es gibt drei Möglichkeiten, dies zu tun:
Den
<ivy:cachepath/>
Aufgabe erstellen Sie eine classpath (in diesem Fall genannt main.classpath), dass Punkte auf die Gläser, die Sie in Ihremivy.xml
Dateicompile
Konfiguration. Dies wird verwendet, die meisten der Zeit.Wenn Sie ein fileset, können Sie diese verwenden:
In diesem Fall, es wird ein fileset mit refid von
compile.fileset
.Manchmal haben Sie, um die Gläser in Ihrem Projekt. Zum Beispiel, wenn Sie eine war-oder ear-Datei, die Sie möchten, schließen Sie die Gläser. In diesem Fall können Sie verwenden:
Holt Ihre Gläser in die
${lib.dir}
- Verzeichnis, damit Sie Sie einfügen können, die in kriegen oder Ohren.Sorry für die lange Antwort, aber es gibt eine Menge von Schritten zu decken. Ich empfehle Manning Buch Ameise in Aktiondie hat ein ganzes Kapitel über Ivy.
InformationsquelleAutor der Antwort David W.
David gab eine sehr feine Antwort, aber ich möchte darauf hinweisen, dass die taskdef-ist nicht erforderlich.
Sofern die ivy.jar ist an der erwarteten Stelle die namespace-Deklaration an der Spitze der ANT-Datei ist genug:
Für weitere Einzelheiten, empfehle ich das Lesen darüber, wie ANT-libs Arbeit.
Folgende Antwort bietet einige weitere "einrichten ivy" Beratung:
InformationsquelleAutor der Antwort Mark O'Connor