Frage

Ich sehe Bezug von ant viel, aber ich weiß nicht genau, was seine vorhatte? von dem, was ich sein angenommenes gehört habe Ihre Projekte zu kompilieren, kann aber nicht, dass ich genau das tun, indem Sie auf Run-> Run in Eclipse?

Edit: Ich denke, ich sollte meine Frage anders formulieren. Ich weiß schon, dass ant ist eine ‚Build Automation Software‘, meine Frage ist, was genau ist Build-Automatisierung? Ich dachte, dass Sie sollen Ihre Anwendung testen, und wenn es ausgeführt wird Sie auf die Schaltfläche ‚build‘ Schaltfläche in Eclipse oder über Kommandozeilen-Java, und es macht eine .jar-Datei aus ihm heraus? Also, warum Sie müssen ‚automatisieren‘ diesen Prozess?

War es hilfreich?

Lösung

  

Ich weiß schon, dass ant a ‚Build-Automatisierungssoftware‘, meine Frage ist, was genau bauen Automatisierung ist? Ich dachte, dass Sie sollen Ihre Anwendung testen, und wenn es ausgeführt wird Sie auf die Schaltfläche ‚build‘ Schaltfläche in Eclipse oder über Kommandozeilen-Java, und es macht eine .jar-Datei aus ihm heraus? Also, warum Sie müssen ‚automatisieren‘ diesen Prozess?

Nicht alle Java-Entwicklung wird durch Eclipse getan und nicht alle Gläser von der Kommandozeile eingebaut werden kann (oder sollte von der Kommandozeile eingebaut werden).

Sie müssen zusätzlich Testfälle laufen kann, Unit-Tests, und viele, viele andere Verfahren.

Welche Ameise tut, ist es, einen Mechanismus zu schaffen, all diese Arbeit zu automatisieren (also nicht Sie haben es jedes Mal zu tun) und vielleicht können Sie diese Ant-Skript jeden Tag um 6 p.m aufrufen.

Zum Beispiel, in einigen Projekten eine tägliche Build benötigt wird, ist die folgend die Aufgabe, die mit Ant automatisiert werden kann, so können sie ohne menschliches Zutun ausgeführt werden.

  • Eine Verbindung mit Subversion-Server.
  • Download / Update mit der neuesten Version
  • Kompilieren Sie die Anwendung
  • Führen Sie die Testfälle
  • Verpacken Sie die Anwendung (im Glas, Krieg, Ohr, oder was auch immer)
  • Commit dieses Build Binärdateien Subversion.
  • Installieren Sie die Anwendung in einem Remote-Server
  • Starten Sie den Server
  • Senden Sie eine E-Mail mit der Zusammenfassung des Auftrags.

Natürlich für andere Projekte ist dies übertrieben, aber für einige andere ist sehr hilfreich.

Andere Tipps

rogeriopvl ist absolut richtig, aber zu antwort auf Ihre „kann ich nicht, dass Run- einfach nicht, indem Sie auf> Ausführen in Eclipse?“ Frage:. das ist in Ordnung für ein Projekt, das Sie arbeiten auf eigener Faust auf, und nicht einen wiederholbaren, skript Build in mehreren Umgebungen benötigt

Wenn Sie auf einem Open-Source-Projekt arbeiten, jedoch oder professionelle Software, die auf einem Build-Server usw. bauen zu können, braucht eine bestimmte IDE erfordert ausgeführt zu sein, ist keine gute Idee.

Ant wird verwendet, um einen Build-Prozess zu automatisieren, sondern ein Build-Prozess ist oft viel mehr als kompilieren. Ant hat „Aufgaben“, die verwendet werden können, verschiedene nützliche Funktionen auszuführen. Sie können Ihre eigene Aufgabe zu tun, nur um etwas durch das Schreiben einer Java-Klasse und erzählt Ameise, wo zu finden, es zu schaffen. Anschließend können Sie diese Aufgaben mischen und Ziele zu schaffen, die eine Reihe von Aufgaben ausführen wird.

Sie können auch ein dynamisches Umfeld, in dem eingerichtet, um Ihre Anwendung zu erstellen. Sie können bis Eigenschaftsdateien festlegen Variablen zu halten, die in dem Build-Prozess verwendet werden können, dh die Dateipfade, Klassenpfade, etc. Dies ist zum Beispiel nützlich, um zwischen Test und Produktion baut, wo Bereitstellungspfade, Datenbankinstanzen usw. zu halten ändert sich vielleicht. Ant umfasst auch Flusssteuerung (wenn, etc.)

Einige Dinge, die ich Ameise do gesehen habe:

  • Übersetzen Code
  • Verwenden Sie die Versionskontrolle die neueste Version zur Kasse oder die Version gebaut
  • zu markieren,
  • Führen Sie SQL-Skripte zu erstellen oder eine Testdatenbank
  • Wiederaufbau
  • Kopieren von Dateien von einer externen Quelle für die Aufnahme in einem Projekt
  • Bundle-Code in ein Gefäß, Krieg oder Ohr-Datei
  • Bereitstellen einer Web-Anwendung auf einem Anwendungsserver
  • Starten Sie einen Anwendungsserver
  • Führen Sie eine Test-Suite
  • Statische Analyse, dh Check oder PMD
  • E-Mail senden an ein Team, sie zu einem Build aufmerksam zu machen.
  • Dateien basierend auf Informationen generiert aus dem Build.
    • Beispiel: Ich habe eine jsp in meiner app, die nichts anderes als Display-Version tut / Build-Informationen. Es wird von Ameise erzeugt wird, wenn ich einen Build ausführen, und die Produktion Team prüft diese Seite, wenn sie die Anwendung bereitstellen, um sicherzustellen, dass sie den richtigen Build bereitgestellt haben.

In vielen größeren Unternehmen (und wahrscheinlich einige kleinere), können Sie diese Produktionscode finden nicht von den Menschen gebaut, die es entwickelt . Stattdessen können die Entwickler ihren Code in ein Repository Quellcode überprüfen und etikettieren. Dann werden sie diesen Tag zu einem Build-Team geben.

Das Build-Team, in einem separaten (clean) Bereich - möglicherweise auf einig Headless-Server (das heißt ohne GUI) - wird dann den Code überprüfen und einen Build-Skript ausführen. Der Build-Skript wird völlig unabhängig von der Desktop-Umgebung / IDE .

Damit wird sichergestellt, dass nichts, was auf einer Entwickler-Computer sein geschieht wird die Build „verschmutzen“. (Oder, was wahrscheinlicher ist, nichts außerhalb der Quellcodeverwaltung für das System benötigt, um die Arbeit!)

So sind die meisten Software, die Sie verwenden, wird nie, immer von einem Entwickler-Desktop erstellt werden.

PS. Vielleicht möchten Sie auch auf die Idee Continuous Integration aussehen

Die kurze Antwort ist, dass Ant eine gute Möglichkeit ist es, ein komplettes Projekt Build zu erstellen, die von einem bestimmten Werkzeug unabhängig ist jeder Entwickler verwenden kann. Ohne eine unabhängige bauen, können die Dinge gehen drunter und drüber schnell - vor allem für große Projektteams

.

Und nun die lange Antwort ... Ich habe in mehrere Projekte ohne Sinn eines unabhängigen Build gebracht worden. Bei einem Projekt gab es einen Mann, der keinen Entwickler war, die mit dem Aufbau und die Bereitstellung der Software beauftragt wurde. Er hatte 147 separate Windows-Batch-Dateien erstellt jedes EJB zu kompilieren, jedes Servlet, und jede Client-Komponente. Es gab keinen Fehler für diesen Build überprüfen. Alle Log-Meldungen, einschließlich Fehlermeldungen gingen an die Standardausgabe. Es war auf ihn manuell zu erkennen, indem Sie dieses Protokoll zu lesen, die Ausnahme oder die Nachricht ein normales und die Nachricht ist ein Fehler gedruckt wurde. Er hatte auch diese Software zu implementieren er gerade gebaut. ebenso wie komplex war Bereitstellen da es mehrere Lastenausgleich Reihen waren. Jedes Modul hat an der richtigen Stelle platziert werden manuell mit Optionen Setup Downstream- und Upstream-Ebenen entsprechen. Der Aufbau und die Bereitstellung dieser Software nahm ihn mindestens 3 Tage mit dieser Methode. Natürlich nur dann könnte jemand bestimmen, ob die Build „gearbeitet“. Normalerweise nach dieser Zeit alle Programmierer würde Gerangel den Build zu debuggen. Programmierer würde sagen, mein Modul in meiner IDE gut funktioniert. Ich habe gerade wie folgt ausführen klicken, sehen Sie?

Tatsächlich sind die einzelnen Softwaremodule in der Regel gearbeitet, aber die Build- und Deployment war schrecklich wirkungslos. Und genauso schlimm, es war genauso schwierig für alle, einen Build auf mehr als eine Umgebung bereitstellen. Management würde sagen, ok Sie jetzt diesen Build haben in unserer Regressionstestumgebung arbeiten. Jetzt bereitstellen, die gleiche Build in dieser anderen Umgebung, so dass die Verkäufe Jungs und kommende Software-Demo können. Das sollte einfach sein zu tun, aber es dauerte auch mindestens 2 Tage, gefolgt von einem „Debuggen der Build“ -Periode. Baut und entfaltet waren nie einfach und nie genau. Es verlangsamt das Projekt wirklich nach unten.

Wie auch immer, wir ersetzt das gesamte Verfahren mit einem kompletten Ant-basierten Build und bereitstellen Mechanismus. Das Endergebnis war, dass ein vollständiges Build konnte in weniger als 30 Minuten erstellt und bereitgestellt werden, vollständig automatisiert. Der Typ QA Verwaltung der Builds und setzt ein Whiteboard halten konnte, von denen Umwelt hatte, die er entfalten bauen und welche Gruppe, die Umwelt wurde mit. Das war etwas, das einfach nicht möglich, mit dem alten System war.

Ant ist für die Automatisierung von Software-Build-Prozesse:

http://en.wikipedia.org/wiki/Apache_Ant

Ant ermöglicht CRISP (komplett, wiederholbare, informativ, planbare, portable) aufbaut. Sie können große Informationen über sie in dieser Präsentation von Mike Clark finden und in seinem Buch, Pragmatische Projektautomatisierung .

Ant ist ein Build-Tool, ähnlich wie Makefiles (wenn auch mit einer ganz anderen Syntax in XML). Wenn Sie nur mit Eclipse es ist in Ordnung, um das zu halten und Sie können eine Ant-Build-Datei in ein Eclipse-Projekt (Eclipse Startkonfigurationen sind dann, wenn ich mich richtig erinnere, das äquivalent von Ant Build-Zielen) immer konvertieren.

Wenn Sie den Quellcode der Anwendung bereitstellen möchten und andere auf einfache Weise zu bauen oder einzurichten, zu automatisieren, dass Ant verwenden ist wahrscheinlich keine schlechte Idee. Aber es ist in der Regel nicht eine konsistente Erfahrung für Benutzer oder zumindest habe ich nicht viel Konsens gesehen auf welche Ziele es sein sollte, und das tun, was so weit.

Ant auch für regelmäßige verwendet werden können automatisiert erstellt (Sie würden nicht jede Nacht treffen Run in Eclipse wollen, rechts: -))

Wenn es eine nah an Ihnen Ich glaube, Sie viel aus CitCon , die Continuous Integration und Testing Conference. Sie erhalten mit vielen Menschen über die Vorteile der Automatisierung zum Aufbau und Testen von Software angewandt sprechen.

Grundsätzlich Menschen nutzen Ant (mit anderen Werkzeugen) alles, was sie nach einem Commit passieren haben wollen zu automatisieren. Die wesentlichen Vorteile einer solchen Automatisierung sind schneller, besser und billiger.

Schneller , weil die Dinge sofort geschehen, ohne zu warten, ein Mensch, um es zu umgehen.

Besser , weil Computer wirklich, wirklich gut sind jedes Mal der gleiche Sache auf die gleiche Weise zu tun. (Die Menschen neigen dazu, das zu saugen.)

Billigere , weil Sie weniger Fehler und die Fehler, die früher und deshalb gefangen auftreten billiger zu beheben.

Sie beziehen sich auch auf die "" Export ant Buildfile “.

Wenn Sie eine eigene Ant-Skript schreiben für Ihre Anwendung außerhalb Eclipse erstellen, können Sie Ihre eigenen Ziele schreiben, die die Ant-Task auf das erzeugte build.xml .

delegieren

Sie können aber auch ein Projekt ‚Builder‘ konfigurieren (project properties » Builders) jedes Skript auszuführen (Ameise oder auf andere Weise), die Sie möchten, wenn Sie das Projekt erstellen, manuell oder automatisch.

Joel (Spolsky) hat ein großer Artikel auf "The Joel-Test." Viele von ihnen drehen sich um wichtige Dinge oft zu tun in der Lage, schnell und zuverlässig. Eines dieser Dinge ist Ihre bauen.

Eclipse mit ant für Gebäude, Laufen, Bereitstellung ...

„Ant ist ein Java-basiertes Build-Werkzeug. In der Theorie ist es eine Art Make von mögen, ohne Falten Marke und mit der vollständigen Übertragbarkeit von reinem Java-Code.“ (Von Link-Text

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