2010-11-30 11 views
4

Hat jemand einen einfachen Vorschlag zum Aufzeichnen einer Build-ID (generiert zur Kompilierzeit), die zur Laufzeit in der Titelleiste der App angezeigt wird?Beziehen der Build-ID in einer Java-Anwendung

Ich baue aus Eclipse, alles was ich brauche, ist die ID, die ich dann an den Titel weitergeben kann.

+0

Welches Build-Tool verwenden Sie? –

+1

Ich baue es nur innerhalb von Eclipse (mit ADT für Android). Daher habe ich derzeit keine Build-ID generiert (die mir bekannt ist). Ich muss zuerst eine generiert werden (macht Maven das?) Und dann zur Laufzeit von der App zugreifen. –

+0

Dieser Beitrag hat eine großartige Ende-zu-Ende-Beschreibung: http://rterp.wordpress.com/2012/03/16/stamping-version-number-and-build-time-in-properties-file-with- maven/Auch nützlich: http://stackoverflow.com/questions/2469922/generate-a-version-java-file-in-maven –

Antwort

3

Wenn Sie Ant verwenden, können Sie Ihr "jar" - oder "package" -Ziel einfach so einrichten, dass es eine Datei einschließlich des aktuellen Zeitstempels generiert und diese in Ihre jar-Ausgabe einfügt.

Wenn Sie Maven verwenden, gibt es ein paar Möglichkeiten, etwas Ähnliches zu erreichen, z. B. das Ablegen zu Ant mit the antrun plugin.

+0

Hallo, vielleicht ein bisschen spät, aber Sie können es versuchen: $ {maven. build.timestamp} geschrieben von Nicolas Toublanc unter http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide?focusedCommentId=136675856#comment-136675856 – ATorras

0

Wenn Sie vollständig in Eclipse erstellen, müssen Sie eine Build-Aktion erstellen, die eine Ressource in Ihrem Quellordner mit den benötigten Informationen generiert - eine Eigenschaftendatei wird gut funktionieren -, die dann an Ihre binäre Ausgabe weitergegeben wird und sein kann Lesen Sie zur Laufzeit, nach dem Sie tun können, was Sie brauchen, um es zu zeigen.

2

Wenn Sie einen Zeitstempel für den Build verwenden möchten, können Sie diesen aus den JAR- oder Klassenmodifikationsdaten oder der MANIFEST-Datei beziehen.

Maven füllt eine MANIFEST-Datei mit der Modulversionsnummer im Jar. Sie können dies lesen, um die Version aller von Ihnen verwendeten maven-Module zu erhalten.

Wenn Sie den Timestamp-Teil der "eindeutigen ID" erstellen, wird sichergestellt, dass jeder Build eine andere ID hat.

4

Wenn Sie maven verwenden, insbesondere, wenn Sie die Build-Nummer von svn (obwohl es einzigartige Build-Nummern für Sie durch eine Konfiguration generieren kann), sehen Sie sich die buildnumber-maven-plugin.

Sie einfach einen Ausschnitt ähnlich der folgenden auf Ihre pom.xml-Datei hinzu:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <doCheck>true</doCheck> 
       <doUpdate>true</doUpdate> 
      </configuration> 
     </plugin> 

dann $ verwenden {} buildnumber später in Ihrem pom auf die Build-ID zu beziehen. Ich benutze es, um diese Nummer mit dem maven-war-plugin in das Manifest zu schreiben.

   <archive> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
        <manifestEntries> 
         <Implementation-Build>${buildNumber}</Implementation-Build> 
        </manifestEntries> 
       </archive>