2015-03-25 6 views
9

Posso impostare in qualche modo il processo di costruzione IntelliJ per pre-elaborare i codici sorgente Java e fornirmi un numero di build incrementale? Qualcosa di simile:IntelliJ IDEA - posso avere automaticamente incrementato il numero di build (versione)?

int myBuildNumber = INTELLI_J_IDEA_MAGIC_WHICH_WILL_INCREMENT_EVERY_BUILD; 
+0

Interessante domanda. Quale problema risolve la sua soluzione? –

+1

Non riesco a pensare ad una soluzione semplice, intelliJ, ma per quanto riguarda l'uso di '' ant'' per farlo? È possibile attivare un'operazione ant sulla stessa direttamente da intelliJ. In questo modo il processo potrebbe essere indipendente dall'IDE. – AtomHeartFather

+0

Petur: Beh, non molto - solo posso chiedere ai colleghi quale versione del mio strumento usano e posso dire loro se è l'ultimo. Anche se dimentico di cambiare manualmente la versione prima di darla via ... Il prossimo passo sarebbe collegarlo in qualche modo con il numero del sistema di revisione. Ma per ora volevo solo qualcosa di veloce e sporco e un numero di fantasia come 125 :) –

risposta

6

Ok così con un suggerimento da AtomHeartFather I got it.

Per prima cosa dobbiamo scrivere un file xml di formica. Questo file creare il file in cui verrà memorizzato e incrementato il numero di build e poi sarà guardare attraverso il file di codice sorgente ${src}/com/yourPath/Main.java per la variabile public static final String BUILD_NUMBER = ".*"; e sostituirlo con l'attuale numero di build

Il file XML sarà simile a questa:

<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> 

Quindi nel tuo intelliJ (sto usando 14.0.3) fai clic su View->Tool Windows->Ant Build. Quindi, + e vai al tuo file xml (nota che il percorso corrente usato dal tuo xml sarà il percorso di quel file xml stesso - non inteliJ project - quindi potresti voler correggere la parte location="../src" a seconda di dove memorizzi il tuo xml). Di quanto vedrai il nostro obiettivo init puoi selezionarlo e fare clic sul pulsante play. Se funziona, vedrai BUILD_NUMBER incrementato nel tuo file di codice sorgente Main.java. Ora il trucco importante come farlo automaticamente: Basta fare clic destro su init e selezionare Execute on->Before Compilation. Fatto :)

+0

Questa è davvero una grande risposta. Complimenti a te. –

+1

Tipp: è anche possibile eseguire il file Ant quando i pacchetti (di rilascio) sono compilati. Segui questi passaggi (supponendo che tu abbia già un artefatto): Build -> edit Artefatto -> (Tab) Pre-processing -> Esegui Ant target "init" :) –

+0

Risposta straordinaria Vit, mi ha risparmiato molta irritazione. Come generare stringhe di numeri di build personalizzate come 1.1.1 ecc.? – Sumit

Problemi correlati