[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Frunge] Blacken: Erſte Schritte
From: |
Dennis Heidsiek |
Subject: |
Re: [Frunge] Blacken: Erſte Schritte |
Date: |
Mon, 05 Oct 2009 10:19:14 +0200 |
User-agent: |
Thunderbird 2.0.0.23 (Windows/20090812) |
Moin allerſeits,
Arno Trautmann ſchrieb am 04.10.2009 21:41 Uhr:
Umſo beſſer – ſo kann man den ganzen Entwicklungsprozeſs verfolgen und gleich
ſchon ſeinen Kommentar zu geben – wenn erwünſcht ;)
Nur um das nochmal klarzuſtellen: Kommentare, Wünſche, Rückmeldungen
etc. ſind ganz /ausdrücklich/ erwünſcht :-).
Ich glaube, das war gerade das unintuitivſte Compilieren, das mir jeh
untergekommen iſt.
»Intuitiv« iſt relativ ;-) … als Java-Programmierer reicht mir
eigentlich ſchon eine Datei mit dem Namen build.xml, und ſchon gebe ich
auf der Kommandozeile ant ein und ſchaue was paſſiert ;-).
Nur als Erfahrungsbericht:
Nach Inſtallation von apache-ant muſs ich feſtſtellen, daſs der Befehl ant
nicht bekannt iſt. Erſt Suche nach
address@hidden blacken]$ slocate ant | grep bin
hat mir das Ergebnis gebracht. Mit dem Aufruf
address@hidden blacken]$ /usr/share/java/apache-ant/bin/ant
hat es dann fein kompiliert.
Ah, verſtehe. Da ich Ant relativ häufig benutze, habe ich auf meinem
Windows-Rechner apache-ant/bin/ in den Path aufgenommen, ſo daſs ich nur
noch ant eingeben muſs. Unter Arch kann man ſich ſicherlich auch
irgendwo definieren/einſtellen, daſs ant automatiſch auf
/usr/share/java/apache-ant/bin/ant weiterleitet, dieſe Abkürzung ſcheint
bei Dir ja noch nicht belegt zu ſein (Frag’ mich jetzt aber nicht wie,
ich hatte eigentlich gedacht bzw. gehofft, daſs die Paketverwaltung das
von alleine machen würde ;-)).
Habe danach nach einer Binärdatei geſucht und bin daher erſtmal im bin-Ordner
hängen geblieben … bis ich geleſen habe, daſs ich blacken.jar im out-Ordner
ausführen muſs. Das hat dann auch getan.
address@hidden blacken]$ /usr/share/java/apache-ant/bin/ant test
hat auch funktioniert. Inſofern gab es etwas Verwirrung, aber keine Probleme
bei mir.
Nochmal zur Klarſtellung: Java iſt eine objektorientierte
Programmierſprache, in der jede Klaſſe in einer eigenen Quelldatei
(Metric.java) abgeſpeichert wird (und zwar im Ordner src=Source). Dieſe
Dateien werden dann kompiliert, daſs heißt in einen
maſchinenübergreifenden Zwiſchencode (Javaſprache: Bytecode¹ für eine
Java Virtual Machine) überführt. Dieſer Bytecode iſt zwar bereits
ausführbar (und deshalb auch im Ordner bin/ zu finden), aber jede
Klaſſe behält weiterhin ſeine eigene Datei (Metric.class). Da daſs aber
etwas unpraktiſch iſt, wird dieſer ganze Krempel dann nochmal in einer
einzigen Jar-Datei (im Ordner out) zuſammengepackt – das iſt alſo die
fertige Datei, die für den Endnutzer gedacht iſt (und natürlich jede
Menge Kommandozeilenoptionen unterſtützen wird – ſobald ich ſie
implementiert habe). Übrigens: Im Ordner out/api wird auch noch
automatiſch eine für Java typiſche² Programmierer-Dokumentation im
HTML-Format erzeugt.
Aber mich als Entwickler iſt es einfach praktiſcher, alles wichtige auch
direkt über ant machen zu können. Hier nochmal die Zuſammenfaſſung:
ant (äquivalent zu ant dist) – Erzeugt alles, alſo erſt /bin/ und dann
/out/.
ant test – Führt die fertige Datei out/blacken.jar mit der
Kommandozeilenoption -test aus
Eine dokumentierte Liſte aller möglichen ant-Befehle kriegt man übrigens
mit ant -p; ich ſelbſt benutze meiſtens ant compile und ant testl (geht
ſchneller, da dann komplett darauf verzichtet wird, den out-Ordner
anzulegen).
So, ich hoffe, daſs ich Dich jetzt nicht unnötig verwirrt habe
…eigentlich wollte ich ja mit dieſer E-Mail Deine Verwirrung verringern.
Das kommt davon, wenn man zu ſehr ins Detail geht :-/.
Wobei es ſehr nett wäre, wenn Du noch nochmal Dein Repoſitory auf den
aktuellen Stand bringen und anſchließend ant / ant test ausführen
könnteſt. Ich habe eben mit dem letzten Commit den geſamten
Build-Prozeſs maſſiv überarbeitet …
Leider nur ſehr kurze Compilierzeit :( Aber das wird ja noch ;)
Dieſe Ausſage dürfte jetzt wohl als veraltet gelten ;-). Aber ich finde
die Frage nach der Geſchwindigkeit des fertigen Programmes ſowieſo viel
intereſſanter (geplanter Streßteſt: Einmal die Einheitsüberſetzung
brechen oder ſo etwas in der Art). Aber erſt kommt die Pflicht (d.h.
möglich korrekt brechen), erſt danach die Kür (dies möglichſt ſchnell zu
tun). Aber auch da bin ich recht optimiſtiſch …
Viele Grüſʒe,
Dennis
¹ http://de.wikipedia.org/wiki/Bytecode
² http://de.wikipedia.org/wiki/Javadoc
- [Frunge] Blacken: Erſte Schritte, Dennis Heidsiek, 2009/10/03
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/03
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/03
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Dennis Heidsiek, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Arno Trautmann, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte,
Dennis Heidsiek <=
- Re: [Frunge] Blacken: Erſte Schritte, Arno Trautmann, 2009/10/05
- Re: [Frunge] Blacken: Erſte Schritte, Dennis Heidsiek, 2009/10/07
- Re: [Frunge] Blacken, Martin Roppelt, 2009/10/07
- Arch GNU/Linux (was: Re: [Frunge] Blacken), Dennis Heidsiek, 2009/10/14
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Dennis Heidsiek, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Dennis Heidsiek, 2009/10/04
- Re: [Frunge] Blacken: Erſt e Schritte, Martin Roppelt, 2009/10/04
- Re: [Frunge] Blacken: Erſte Schritte, Christian Kluge, 2009/10/05