2015-03-25 8 views
9

Kann ich irgendwie den IntelliJ-Bauprozess so einstellen, dass er Java-Quellcodes vorverarbeitet und mir die Build-Nummer ständig erhöht? Etwas wie:IntelliJ IDEA - kann ich Build (Version) Nummer automatisch inkrementieren?

int myBuildNumber = INTELLI_J_IDEA_MAGIC_WHICH_WILL_INCREMENT_EVERY_BUILD; 
+0

Interessante Frage. Welches Problem löst seine Lösung? –

+1

Ich kann mir keine einfache, intelligente Lösung vorstellen, aber was ist mit der Verwendung von "ant"? Sie können eine Ant-Aufgabe direkt aus intelliJ auslösen. Auf diese Weise könnte der Prozess IDE-agnostisch sein. – AtomHeartFather

+0

Petur: Nun, nicht viel - nur ich kann Kollegen fragen, welche Version meines Tools sie verwenden und ich kann ihnen sagen, ob es die letzte ist. Auch wenn ich vergesse, die Version manuell zu ändern, bevor ich sie verschenke ... Der nächste Schritt wäre, sie irgendwie mit der Revisionsnummer zu verknüpfen. Aber ich wollte für jetzt nur etwas schnell und dreckig und schick aussehende Nummer wie 125 :) –

Antwort

6

Ok so mit einem Hinweis von AtomHeartFather Ich habe es.

Zuerst müssen wir eine ant-xml-Datei schreiben. Diese Datei wird erstellen Datei, in der Build-Nummer gespeichert werden und erhöht, und dann wird es Ihre Quellcodedatei ${src}/com/yourPath/Main.java für variable public static final String BUILD_NUMBER = ".*"; und ersetzen mit aktuellen Build-Nummer

Die XML-Datei wie folgt aussehen aussehen würde durch:

<project name="MyProject" default="init" basedir="."> 
    <description> 
     simple example increment build variable 
    </description> 
    <!-- set global properties for this build --> 
    <property name="src" location="../src"/> 

    <target name="init"> 
    <echo file="myAntOut.txt">My first ant ${src} ${line.separator}</echo> 

    <buildnumber/> 
    <replaceregexp file="${src}/com/yourPath/Main.java" 
       match="public\s+static\s+final\s+String\s+BUILD_NUMBER\s+=\s+&quot;.*&quot;;" 
       replace="public static final String BUILD_NUMBER = &quot;${build.number}&quot;;" 
       byline="true" 
    /> 

    </target> 
</project> 

Dann in Ihrem intelliJ (ich benutze 14.0.3) klicken Sie auf View->Tool Windows->Ant Build. Dann + und navigieren Sie zu Ihrer XML-Datei (beachten Sie, dass der aktuelle Pfad von Ihrem XML verwendet wird der Pfad zu dieser XML-Datei selbst - nicht Inteli Projekt - also möchten Sie vielleicht den Teil location="../src" je nachdem, wo Sie Ihre XML speichern) korrigieren. Dann sehen Sie unser Ziel init können Sie wählen und klicken Sie auf play Schaltfläche. Wenn es funktioniert, sollten Sie BUILD_NUMBER in Ihrer Quellcodedatei Main.java inkrementiert sehen. Jetzt der wichtige Trick, wie man es automatisch macht: Klicken Sie einfach mit der rechten Maustaste auf init und wählen Sie Execute on->Before Compilation. Fertig :)

+0

Dies ist wirklich eine gute Antwort. Hut ab. –

+1

Tipp: Sie können die Ant-Datei auch ausführen, wenn die (Release-) Pakete erstellt werden. Folgen Sie einfach diesen Schritten (vorausgesetzt, Sie haben bereits ein Artefakt): Erstellen -> Artefakt bearbeiten -> (Tab) Vorverarbeitung -> Ant-Ziel ausführen "init" :) –

+0

Awesome Antwort Vit, rettete viel Ärger für mich. Wie generiere ich Build Number Strings wie 1.1.1 etc? – Sumit

Verwandte Themen