هناك العديد من الطرق لإضافة رقم البنية ووقت الترجمة داخل البرنامج. أقترح أكثر من ذلك لا يتطلب Maven / Jenkins / Bamboo ولا يرتكبها.
أعمل عادةً مع Java من جانب الخادم ، ويحتاج أي تطبيق تقريبًا (Tomcat / Spring / Play ...) إلى إضافة نقطة نهاية ، والتي ستشير إلى عدد ووقت تجميع التطبيق أثناء طلب HTTP. جربت طرقًا مختلفة ووجدت الطريقة التي تناسبني في كل شيء. تستغرق عملية التكامل في أي تطبيق Java من 5 إلى 10 دقائق.
تحتاج أولاً إلى التسجيل في
Backendless وإنشاء تطبيق هناك (يمكنك استخدام أي خدمة أخرى يمكنها إعطاء رقم عن طريق طلب http ، وزيادة الرقم في كل مرة بمقدار 1). بعد تلقي APP_ID للتطبيق ، تحتاج أيضًا إلى الحصول على API_KEY في
هذه الصفحة.
بعد ذلك ، يمكنك استخدام
الفرصة للحصول على عدد صحيح ، والذي سيزيد بمقدار 1 بعد كل طلب.
لكي يصل هذا الرقم إلى البرنامج ، تحتاج إلى استخدام مكتبة
kolobok OpenSource
الخاصة بي. حدد تبعية المكتبة في pom.xml أو build.gradle.
مخضرم<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'
إضافة تعليق توضيحي للحقل في أي فئة (لا تنس أن تكتب APP_ID و API_KEY الصحيحين داخل معلمة عنوان 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)); } }
الآن ، بعد كل إعادة تجميع للفئة الرئيسية ، سيكون لديك رقم جديد في حقل bn من تسلسل الأرقام المتزايدة ، وسيحصل حقل ct على وقت التجميع. وهذا هو ، شيء من هذا القبيل سوف تذهب إلى إدخال مترجم.
public static long bn = 1;
بعد الإنشاء التزايدي ، قد لا تتم إعادة ترجمة ملف Main.java وستظل القيم كما هي ، لكنها عادة ما تقوم بعملية تنظيف كاملة لجميع الملفات المترجمة قبل الإنشاء الكامل ، مما يعني أنه سيتم تحديث رقم البنية.
يمكنك الآن استخدام هذه المتغيرات لعرض رقم البنية ووقت البناء للمستخدم.