frunge-internal
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]