Eine andere Möglichkeit, die Zeit und die Build-Nummer für Java zu verfolgen

Es gibt viele Möglichkeiten, die Build-Nummer und die Kompilierungszeit im Programm hinzuzufügen. Ich schlage eine weitere vor, die Maven / Jenkins / Bamboo nicht benötigt und nicht in Git festlegt.

Ich arbeite normalerweise mit serverseitigem Java und fast jede Anwendung (Tomcat / Spring / Play ...) muss einen Endpunkt hinzufügen, der die Anzahl und den Zeitpunkt der Anwendungserstellung während einer HTTP-Anforderung angibt. Ich habe verschiedene Wege ausprobiert und in allem den gefunden, der zu mir passt. Der Integrationsprozess in eine Java-Anwendung dauert 5-10 Minuten.

Zuerst müssen Sie sich für Backendless registrieren und dort eine Anwendung erstellen (Sie können jeden anderen Dienst verwenden, der auf http-Anfrage eine Nummer vergeben kann und diese jedes Mal um 1 erhöht). Nachdem Sie die APP_ID der Anwendung erhalten haben, müssen Sie auch die API_KEY auf dieser Seite abrufen.

Danach können Sie die Gelegenheit nutzen , um eine Ganzzahl zu erhalten, die sich nach jeder Anforderung um 1 erhöht.

Damit diese Nummer in das Programm aufgenommen wird, müssen Sie meine kolobok OpenSource-Bibliothek verwenden. Geben Sie die Bibliotheksabhängigkeit in pom.xml oder build.gradle an.

Maven
<dependency> <groupId>com.github.ukman</groupId> <artifactId>kolobok</artifactId> <version>0.1.5</version> <scope>compile</scope> </dependency> 


gradle
  compileOnly 'com.github.ukman:kolobok:0.1.5' 


Fügen Sie eine Anmerkung für das Feld in einer Klasse hinzu (vergessen Sie nicht, die richtige APP_ID und API_KEY in den URL-Parameter zu schreiben).

 import org.kolobok.annotation.*; public class Main { @BuildNumber(url = "https://api.backendless.com/${APP_ID}/${API_KEY}/counters/build/increment/get", method = "PUT") public static long bn; @CompileTime public static long ct; public static void main(String args[]) { System.out.println("Build number = " + bn + " compilation time " + new Date(ct)); } } 

Nach jeder Neukompilierung der Hauptklasse haben Sie nun eine neue Nummer aus der Folge der ansteigenden Nummern im Feld bn, und das Feld ct hat die Kompilierungszeit. Das heißt, so etwas geht zur Compilereingabe.

  public static long bn = 1; // 2..3..4..5.. public static long ct = 1580107708793; // System.currentTimeMillis() 

Nach einem inkrementellen Build wird die Main.java-Datei möglicherweise nicht erneut kompiliert und die Werte bleiben gleich. In der Regel werden jedoch alle kompilierten Dateien vor dem vollständigen Build vollständig bereinigt, sodass die Build-Nummer aktualisiert wird.

Sie können diese Variablen jetzt verwenden, um dem Benutzer die Build-Nummer und die Build-Zeit anzuzeigen.

Source: https://habr.com/ru/post/de485552/


All Articles