JAVA verzió és időbélyeg kezelés NETBEANS-szel

Régóta foglalkoztat, hogyan lehet időbélyeget adni automatikusan egy lefordított java programhoz. Ugyanez a probléma akkor is, ha a build sorszámát szeretném használni.

Megoldás:

A NETBEANS esetén a project gyökérkönyvtárában van a build.xml fájl. Ezt lehet az alábbi módon módosítani:

<target name="-pre-compile">
  <tstamp prefix="build">
    <format property="BUILD_TIMESTAMP" pattern="yyyy.MM.dd HH:mm" />
  </tstamp>
  <propertyfile file="source/version.properties">
    <entry key="app.version" value=" ${build.BUILD_TIMESTAMP}" /> 
    <entry key="BUILD" value="1" type="int" operation="+"/>
  </propertyfile>
</target>

Ez fogja meghatározni azt, hogy a source könyvtárban lévő version.properties fájlba milyen bejegyzések kerüljenek egy fordítás előtt. A version.properties fájlt létre kell hozni és a BUILD kulcsszóhoz 1-et írni.

BUILD=1
app.version=\ 2011.11.13 02\:09

A JAVA alkalmazásban pedig egy ilyen osztállyal lehet kezelni és a metódusokat meghívva megjeleníteni a verzió értékeket:

import java.util.*;

public class Version {
    public final static ResourceBundle rb = ResourceBundle.getBundle("version");
    public String getVersion(){       
        String msg;
        try {
            msg  = rb.getString("app.version")+" "+ rb.getString("BUILD")+" ";
        }catch(MissingResourceException e){
            msg = "";
        }
        return msg;
    };

    public String getAuthor(){
return "(c) Fabian Zoltan, X-Computer";
    }
    public String getName(){
      return "DataGrid Component";
    }             
}