Automatisch Kompilierdatum einfügen bzw. Versionsnummer

mpwh

Grünschnabel
Hallo,

gibt es in Java die Möglichkeit in einer Variablen das Datum der letzten Kompilierung der Klasse einzufügen?

Zum besseren Verständnis meiner Frage erkläre ich den Zweck: ich möchte für mein Java-Programm eine Versionsnummer AUTOMATISCH generieren, die sich mit jedem Kompilieren selbständig erhöht und die dann in meinem Hilfedialog angezeigt wird (in C kann man das glaube ich mit #DEFINE...machen).

Ich benutze Eclipse, vielleicht gibt es dafuer ja ein Plugin, das sowas macht?

Vielen Dank fuer Eure Hilfe,
mpwh
 
Hallo,

das was du beschreibst geht am einfachsten mit dem Buildtool "Ant", welches du direkt aus Eclipse aus aufrufen kannst (ist mit dabei).
Hierfür musst du eine xml-Datei schreiben, welche den Build-Prozess genauer beschreibt. Google sollte dir alles notwendige zum Schreiben dieser Datei liefern:

Handbuch

Das Kompilierdatum kannst du alternativ auch über ein File-Objekt mit der lastModified()-Methode rausfinden. Du erstellst einfach ein File-Objekt auf deine Klassen-Datei und rufst mit lastModified() das Datum der letzten Änderung (= Zeitpunkt des Kompilierens) ab.

Gruß
BK
 
Danke Bratkartoffel!

ich werde mich mal ueber ANT informieren.

> ein File-Objekt mit der lastModified()-Methode

soetwas hatte ich mir auch schon ueberlegt, war aber mit dieser Loesung nicht zufrieden, da sich manchmal das Datum einer Datei beim umkopieren aendert.

mfg,
mpwh
 
Hallo,

du wirst sicherlich schnell feststellen, dass ANT unheimlich umfangreich ist. In vielen Fällen lohnt es sich nicht, ein extra Buildfile für den ANT zu erstellen, somit wäre die andere Lösung eine einfache, aber auch quick-and-dirty Lösung ;)

Gruß
BK
 
auweia, ANT ist wirklich kompliziert - aber da muss ich mich jetzt wohl einlesen.

naja, das mit "lastModified()" hat auch den nachteil, das nicht nach jeder ausbesserung jedes java-file kompiliert wird. nur die java-files, die auch veraendert wurden werden kompiliert. es wuerden also unterschiedliche versionen das gleiche datum eventuell erhalten. ich muesste also alle meine klassen nach dem juengsten kompilierdatum durchsuchen...

damit sich das file-datum beim kopieren nicht aendert koennte ich dadurch verhindern, indem ich alle klassen zu einem jar packe, und dann das datum von einer der im jar enthaltenen files benutze...
 
Zuletzt bearbeitet:
damit sich das filedatum beim kopieren nicht aendert koennte ich dadurch verhindern, indem ich alle klassen zu einem jar packe, und dann das datum von einer der im jar enthaltenen files benutze...

Hierzu müsstest du die Dateien erst entpacken ;)

Ja ich weiß, das lastModified() ist in vielerlei Hinsicht nicht Richtig, aber wie schon gesagt: quick-and-dirty ;)

Gruß
BK
 
Ich werfe mal maven in den Raum. Mit maven schreibt, einfach ausgedrückt, man eine XML-Konfiguration, welche alle Abhängigkeiten enthält und wie anschliesend gebaut wird.

Es ist aktuell imo DAS Tool, wenn es ums bauen von Java-Anwendungen geht.
 

Neue Beiträge

Zurück