Existem várias maneiras de adicionar o número da compilação e o tempo de compilação dentro do programa. Sugiro mais um que não requer Maven / Jenkins / Bamboo e não comete no git.
Normalmente trabalho com Java do lado do servidor e, em quase qualquer aplicativo (Tomcat / Spring / Play ...), é necessário adicionar um ponto final, que indica o número e a hora da montagem do aplicativo durante uma solicitação HTTP. Tentei maneiras diferentes e encontrei a que mais me convinha em tudo. O processo de integração em qualquer aplicativo Java leva de 5 a 10 minutos.
Primeiro, você precisa se registrar no
Backendless e criar um aplicativo lá (você pode usar qualquer outro serviço que possa fornecer um número por solicitação http, aumentando-o cada vez em 1). Após receber o APP_ID do aplicativo, você também precisa obter o API_KEY
nesta página.
Depois disso, você pode usar a
oportunidade para obter um número inteiro, que aumentará em 1 após cada solicitação.
Para que esse número entre no programa, você precisa usar minha biblioteca OpenSource da
kolobok . Especifique a dependência da biblioteca em 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'
Adicione anotação para o campo em qualquer classe (não esqueça de escrever o APP_ID e API_KEY corretos dentro do parâmetro 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)); } }
Agora, após cada recompilação da classe Main, você terá um novo número no campo bn a partir da sequência de números crescentes, e o campo ct terá o tempo de compilação. Ou seja, algo como irá para a entrada do compilador.
public static long bn = 1;
Após uma construção incremental, o arquivo Main.java pode não ser recompilado e os valores permanecerão os mesmos, mas geralmente eles fazem uma limpeza completa de todos os arquivos compilados antes da construção completa, o que significa que o número da construção será atualizado.
Agora você pode usar essas variáveis para exibir o número da compilação e o tempo de compilação para o usuário.