Une autre façon de suivre le temps et le numéro de build pour Java

Il existe de nombreuses façons d'ajouter le numéro de build et le temps de compilation dans le programme. J'en suggère un de plus qui ne nécessite pas Maven / Jenkins / Bamboo et ne s'engage pas dans git.

Je travaille généralement avec Java côté serveur, et dans presque toutes les applications (Tomcat / Spring / Play ...), vous devez ajouter un point de terminaison, qui indiquera le nombre et l'heure de l'assemblage de l'application lors d'une requête HTTP. J'ai essayé différentes manières et j'ai trouvé celle qui me convenait en tout. Le processus d'intégration dans n'importe quelle application Java prend 5 à 10 minutes.

Vous devez d'abord vous inscrire à Backendless et y créer une application (vous pouvez utiliser tout autre service qui peut donner un numéro par demande http, en l'augmentant à chaque fois de 1). Après avoir reçu l'APP_ID de l'application, vous devez également obtenir l'API_KEY sur cette page.

Après cela, vous pouvez utiliser l' opportunité pour obtenir un entier, qui augmentera de 1 après chaque demande.

Pour que ce numéro entre dans le programme, vous devez utiliser ma bibliothèque kolobok OpenSource. Spécifiez la dépendance de la bibliothèque dans pom.xml ou build.gradle.

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' 


Ajoutez une annotation pour le champ dans n'importe quelle classe (n'oubliez pas d'écrire les APP_ID et API_KEY corrects dans le paramètre url).

 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)); } } 

Maintenant, après chaque recompilation de la classe Main, vous aurez un nouveau nombre dans le champ bn à partir de la séquence de nombres croissants, et le champ ct aura le temps de compilation. Autrement dit, quelque chose comme ira à l'entrée du compilateur.

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

Après une génération incrémentielle, le fichier Main.java peut ne pas être recompilé et les valeurs resteront les mêmes, mais ils effectuent généralement un nettoyage complet de tous les fichiers compilés avant la génération complète, ce qui signifie que le numéro de génération sera mis à jour.

Vous pouvez maintenant utiliser ces variables pour afficher le numéro de build et le temps de build à l'utilisateur.

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


All Articles