Announcement

Collapse
No announcement yet.

Automatische Versionsnummer im Quellcode durch Eclipse generieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Automatische Versionsnummer im Quellcode durch Eclipse generieren

    hallo,

    gibt es irgendeine Möglichkeit, dass man die Versionsnummer in Quellcode durch Eclipse automatisch generieren lässt oder die Versionnummer von SVN bzw. CVS ablesen kann?
    also ich möchte vermeiden, die Versionsnummer selbst in Quellcode generieren bzw. immer zu Fuss zu ändern .

    vielen Dank für eure tipps.

    Marek

  • #2
    a) eine eigene Javaklasse schreiben, die die Versionsnummer hochzählt. Diese Klasse wird beim Buildprozess angestossten und zählt dann die Nummer hoch

    b) ANT kann über einen Task eine Datei verwalten in der eine Nummer beim Buildprozess hochgezählt wird. Allerdings nur einstelling 1,2,34,. Das übliche Format 1.2.305 lässt sich damit nicht hochzählen
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      a) eine eigene Javaklasse schreiben, die die Versionsnummer hochzählt. Diese Klasse wird beim Buildprozess angestossten und zählt dann die Nummer hoch

      b) ANT kann über einen Task eine Datei verwalten in der eine Nummer beim Buildprozess hochgezählt wird. Allerdings nur einstelling 1,2,34,. Das übliche Format 1.2.305 lässt sich damit nicht hochzählen
      "angestossten" ?--> habe nicht verstanden, was du meinst.

      zu a) wie aufwendig ist das eigene Klasse zu schreiben? wie kann ich die Klasse mit BuildProzess verbinden? gibt es da irgendwelche Beispiele, die du weiss?
      zu b)was ist ANT?

      Gruss

      Comment


      • #4
        a) das hängt davon ab, wie deine Versionsnummer aufgebaut ist. Habe mal folgendes gemacht:

        Code:
        public class ModifyVersionNumber
        {
        public static void main(String[] args) throws FileNotFoundException,IOException
            {
            String datei=args[0];
            Properties prop=new Properties();
            File f=new File(datei);
            try
                {
                prop.load(new FileReader(f));
                }
            catch(IOException ex)
                {
                System.out.println("Fehler beim Laden der Datei "+datei+" "+ex.getMessage());
                }
            String version=prop.getProperty("Build.version");
            int pos=version.lastIndexOf(".");
            String build=version.substring(pos+1);
            int v=Integer.valueOf(build)+1;
            version=version.substring(0,pos+1)+String.valueOf(v);
            System.out.println("Neue Version: "+version);
            String datum=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(new Date());
            prop.clear();
            prop.setProperty("Build.version",version);
            prop.setProperty("Build.datum",datum);
            OutputStream propOut=new FileOutputStream(f);
            prop.store(propOut," ");
            }
        }
        Das Ding hat eine Datei mit dem Aufbau

        Code:
        Build.datum=28.09.2009 15\:51\:52
        Build.version=1.0.664
        manipuliert.

        Aufgerufen wurde es im Buildprozess unter ANT mit


        Code:
           <target name="Version">
                <echo message="Erzeuge Build-Infos"/>
                <java classname="de........ModifyVersionNumber" classpath="${java.class.path}">
                    <arg value="${basedir}/${src.dir}/buildnumber.properties"/>
                    <classpath>
                        <pathelement location="dist/xxxx.jar"/>
                        <pathelement path="${java.class.path}"/>
                    </classpath>
                </java>
            </target>
        zu b)

        http://lmgtfy.com/?q=ant
        Christian

        Comment

        Working...
        X