Albrecht Weinert Labor für Medien und verteilte Anwendungen (MEVA-Lab) Fachbereich Elektrotechnik und Informatik (FB3) der Hochschule Bochum Tipps zu Ant (für Windows) ============================= Stand V01.02, 10.04.2006 : fertige Beschreibung aufgrund Betriebsbewährung V01.03, 17.05.2006 : Kleine Korrekturen aufgrund Nutzer-Rückmeldung V.05++ 10.11.2009 : minimale Korrekturen, Versionssprung wegen SVN-Provider-Ausfall V.213+ 13.12.2011 : nun unter weinert-automation SVN V.335+ 16.02.2015 : Korrekturen (Versionen, Frame4J) Version V1 (23.09.2016) Copyright (c) 2006, 2008 Albrecht Weinert a-weinert.de All rights reserved. Inhalt: 1. Zweck, Voraussetzungen 2. Test der Java - Installation 3. Ant - Installation 3. Administration Pack - Installation 4. Anhang A1 Start-Skript ant.bat A2 Erstes Steuerdateibeispiel - Hilfstasks für ein Java-Projekt A3 Zweites Steuerdateibeispiel - Hilfstasks für WWW-Projekt 1. Zweck, Voraussetzungen ~~~~~~~~~~~~~~~~~~~~~~ Dieses Dokument beschreibt die Installation von Apache Ant für Windows und gibt Hinweise zu dessen Verwendung für kleine Hilfstasks. Ant kann als java-gestütztes und XML-gesteuertes -- und damit plattformunabhängiges -- "Bau-Tool" natürlich mehr. Insofern mag "Hilfstask" überraschen. Aber auch so ein Einsatz ist oft sinnvoll Zwischen dem alten Unix-make und Ant kann von den sehr unterschiedlichen Ansätzen her der Vergleich immer nur hinken. Etwas wie das make brauchte man in Java-Projekten u.A. wegen der früher vorhandenen "smart re-compilation" von javac.exe oder wegen der Fähigkeiten von IDEs, wie Eclipse, ja nicht. Für C-Projekte -- sinnvoll bei embedded µController-Entwicklung -- ist make aber immer noch en vogue -- und of eine sinnvolle Wahl. Voraussetzungen: a.) Sie haben die (oder eine jüngere) Installationsdatei 21.05.2012 10:23 8.093.329 apache-ant-1.8.3-bin.zip b.) Sie haben das administrative Recht, auf dem Zielrechner Programme zu installieren und Systemvariablen zu ändern oder zu ergänzen. c.) Sie haben auf Ihrem Rechner Java installiert, so wie es im Dokument java-install.txt (im selben Verzeichnis wie das Vorliegende) beschrieben ist. Oder Sie tun es jetzt. d.) Ihre Pfadvariable sieht im Wesentlichen so aus: Path=C:\bat;C:\Programme\util;C:\util\jdk\bin; C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem e.) Sie haben beziehungsweise ergänzen jetzt folgende Umgebungsvariablen (in System für Alle, nicht für / als angemeldeter user) JAVA_HOME=C:\Programme\jdk ANT_HOME=C:\util\ant 2. Test der Java - Installation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Von jedem Verzeichnis aus liefert der Befehl java -version java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.8.0_11-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode) oder etwas höheres. Wenn das nicht von überall her funktioniert, sind Sie wieder bei Punkt c.) oben, sprich Ihre Java-Installation fehlt oder ist ungenügend. 3. Ant - Installation ~~~~~~~~~~~~~~~~~~~ Zunächst prüfen Sie bitte, ob es eine vorher installierte Version von Ant gibt. Diese könnte sich auch mit den Dateien ant.jar und optional.jar als "installed extension" in Ihrer JDK-Installation befinden. Diese Vorversionen müssen gegebenenfalls vollständig (!, bis auf Sicherungskopien) weg. Sowohl der Befehl ant als auch java org.apache.tools.ant.Main dürfen (wirklich !) nur zu "gibt es nicht"-Fehlermeldungen führen. Gehen Sie nun in ein temporäres Verzeichnis auf dem C:-Laufwerk. Packen Sie dort mit jar xfv \apache-ant-1.x.y-bin.zip die oben erwähnte Installationsdatei aus. Anmerkung : Verwenden Sie für Windows unbedingt die genannten oder neuere "Windows-Binaries". Versuche mit Linux-Varianten scheitern. Verschieben Sie das nach \apache-ant-1.6.5\ ausgepackte Ergebnis ab da (also komplett, aber ohne das apache-ant-1.x.y\ einfach nach C:\Programme\Apache\ant Vergessen Sie nun einfach alle Anweisungen bezüglich PATH-Ergänzungen in der Ant-Dokumentation sowie alle mitgelieferten (umständlichen) Start-Skripte. Installieren Sie die Datei ant.bat aus dem Anhang in das Verzeichnis C:\bat\ welches ja (siehe oben) in Ihrem "PATH" ganz vorne liegt. In jedem Verzeichnis hat der Befehl ant -version nun folgende Wirkung: -------------------------------------------------- ant(Launcher) -version Apache Ant(TM) version 1.8.3 compiled on February 26 2012 --------------------------------------------------- Wenn Sie etwas Derartiges sehen, ist Ihre Installation erfolgreich abgeschlossen. Interessehalber können Sie sich dann auch das anschauen: ant.bat -diagnostics 4. Anhang ~~~~~~ A1 Start-Skript für Ant ~~~~~~~~~~~~~~~~~~~~ ---- ant.bat ---------------------------------------------------------- @Echo. @echo ant(Launcher) %* @if NOT %ANT_HOME%X==X goto :doAnt @echo No ANT_HOME environment variable @exit /b 999 :doAnt @%JAVA_HOME%\bin\java.exe -classpath %ANT_HOME%\lib\ant-launcher.jar -Dant.home=%ANT_HOME% org.apache.tools.ant.launch.Launcher %* ---------------------------------------------------------------------------- A2 Erstes Steuerdateibeispiel - Hilfstasks für ein Java-Projekt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Die beispielhafte Steuerdatei enthält nur eine Hilfstask (target "srcPubZip"), welche die in der Datei deawPublish.list aufgeführten zur Veröffentlichung freigegebenen Quelldateien in ein Archiv packt. ---- build.xml ---------------------------------------------------- Some little helper jobs for building and deploying of Frame4J, the Java framework, (de.frame4j..) (c) A. Weinert, V.1, 23.09.2016 jobs: help, copDocFiles help: displays this help message (ignore the obnoxious [echo] put in front of every line by Ant copDocFiles: copies referred sources and ressources from the source tree (flattened) into the dirs \doc-files governed by \doc-files\doc-files.list (there) to be done prior (!) to running javadoc jobs, obsolete or not implemented yet: copExamp, copExampX, .. ergZip: Makes a .zip archive including all Frame4J supplements to a (Windows based) JDK, including docu, installed extensions, binaries and so on ---------------------------------------------------------------------------- Die Liste, was in das genannte Archiv soll, kann beliebig lang sein, Kommentare enthalten und damit dokumentiert der Versionsverwaltung unterliegen. Eine so feingranulare Auswahl bekommt man mit dem jar-Befehl allein gar nicht und mit anderen Skripten nur mühsam und schlecht selbst dokumentierend hin. Siehe als Beispiel die folgende (ungekürzte) Liste der zum Framework de.a_weinert... veröffentlichten Quellen. Hinweis1: Statt Hilfsjobs für den Bau des MEVA-Lab- / Weinert- Webauftritts (c) A. Weinert, V.1.8, Di, 12.09.2006, 13:09 jobs: help, setDates, compileAlgDemos ---------------------------------------------------------------------------- Zwei Hinweise/Kritiken zur Ant-Touch-Task Hinweis 1: Touch soll das Modifikationsdatum einer vorhandenen Datei setzen, denkt jeder normale Mensch. Es erzeugt aber in der oben gezeigten Variante die Datei (leer), wenn es sie nicht gab [sic!]. Ersetzt man aber das kompakte durch passiert der Unsinn des ungewollten Generierens leerer Dateien nicht. Hinweis 2: Sehr störend ist auch, dass die ant-touch-Task nur das (abgrundtief blöde) amerikanische 12-Stunden-Uhrzeitformat akzeptiert; dies wurde auch bis zur Version 1.7.0 immer noch nicht korrigiert. Wenn Sie Frame4J installiert haben und noch Verzeichnisse mit den "richtigen" Dateidaten als Kopie besitzen, können Sie sehr komfortabel eine bessere Korrektur-Task für den genannten Fehler von SVN generieren.