2012-01-24 11 views
15

Sto usando un sistema di versioning rappresentato da abbuild dove a è la versione generale (sarà 0 per le versioni prototipo, alpha e beta, 1 per major release), b è la versione milestone (lungo la linea di rappresentare proto, alpha, beta stadi) e build rappresenta letteralmente la quantità di volte che il progetto è stato compilato.Incremento automatico di un numero di build in un progetto Java

Al momento, ho l'app letto da un file di testo, incrementare il numero e salvare in un file di testo quando l'app viene eseguita con un flag di debug impostato.

Sto cercando un modo più "corretto" per farlo utilizzando Java e Netbeans. C'è un modo per iniettare un numero di build nel processo di compilazione da qualche parte? preferibilmente salvando il numero in un file sorgente che viene fornito con il progetto - invece di fare affidamento sull'esistenza di un file nelle vicinanze.

+0

Perché la compilazione deve essere un numero di serie?Perché un hash dei file costruiti non è sufficiente? –

+2

Vedere http://stackoverflow.com/questions/690419/build-and-version-numbering-for-java-projects-ant-cvs-hudson – andersoj

+4

@MikeSamuel Solitamente perché i numeri di build incrementali sono più facili per le persone ('questa build è più recente ') –

risposta

10

ci sono un paio di popolari plugin Maven che compiere questa impresa:

L'uscita Plugin Maven dalla Maven progetto Apache è un po 'overkill per semplicemente aggiornando il numero di versione. Pertanto use the latter plugin per creare un numero di versione (in forma di MAJOR.MINOR.BUILD, per esempio, dove 3.1.44 è auto-increment) come segue:

  1. Aprire il file del progetto pom.xml.
  2. Includere il plugin all'interno della sezione build (dopo la sezione dependencies):
<scm> 
    <connection>scm:svn:http://127.0.0.1/dummy</connection> 
    <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> 
    <tag>HEAD</tag> 
    <url>http://127.0.0.1/dummy</url> 
    </scm> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
      <id>buildnumber</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>create</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <format>{0,number}</format> 
      <items> 
      <item>buildNumber</item> 
      </items>      
      <doCheck>false</doCheck> 
      <doUpdate>false</doUpdate> 
      <revisionOnScmFailure>unknownbuild</revisionOnScmFailure> 
     </configuration> 
     </plugin>  
    </plugins> 
    <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName> 
    </build> 
  1. Assicurarsi che il pom.xml definisce la versione principale e secondaria nell'elemento versione quasi la parte superiore del file. Per esempio:
<version>3.1</version> 
  1. Salvare il file pom.xml.
  2. Ricostruisci il progetto.

Il numero di versione dovrebbe aumentare.


Il plugin richiede un repository di gestione del codice sorgente configurata (<scm>) elemento. Se non ti interessa il numero di check-in del repository usa invece un dummy scm. Questo può essere usato per includere il numero di revisione dal repository, che è un esercizio per lo reader.

1

È possibile utilizzare il conteggio di commit git del ramo corrente come numero di build. Utilizzare questa riga di comando per ottenere il conteggio dei commit: git rev-list HEAD --count.

L'integrazione con gli strumenti di compilazione sarà abbastanza semplice. Se stai utilizzando Gradle, puoi utilizzare questo plug-in: https://github.com/rockerhieu/Versionberg/