Haqqımızda
1C-də biz təkcə platforma hazırlamırıq
Giriş
Biz tez-tez maven-dən Java proqramları üçün bir quruluş sistemi kimi istifadə edirik və bu qısa məqalədə inkişafın təşkili prosesində qarşılaşmalı olduğumuz problemlərdən biri və bunun öhdəsindən gəlməyə imkan verən yanaşma haqqında danışmaq istərdik. problem.
İlkin şərtlər və iş axını
Maven layihələrimizdə inkişaf xüsusiyyətlərinə görə biz kifayət qədər çox modul, asılılıq və uşaq layihələrindən istifadə edirik. Bir ağacdakı pom fayllarının sayı onlarla və hətta yüzlərlə ola bilər.
Görünür: böyük bir şey deyil, bir dəfə yaratdılar və unutdular. Bütün fayllarda bir anda nəyisə dəyişdirmək və ya əlavə etmək lazımdırsa, redaktorlarda və IDE-lərdə çoxlu rahat alətlər var. pom.xml-ə ən çox edilən müntəzəm dəyişiklik hansıdır? İnanırıq ki, layihə versiyalarında və asılılıqlarda dəyişikliklər. Bəlkə kimsə bununla mübahisə etmək istəyəcək, amma bizdə vəziyyət tam olaraq belədir. Səbəb ondan ibarətdir ki, nüvə ilə yanaşı, biz eyni vaxtda öz kitabxanalarımızın çoxunu inkişaf etdiririk və qurulma və sınaq nəticələrinin daimi təkrarlanması üçün anlıq görüntülərdən istifadə bizə rahat yanaşma kimi görünmür. Bu səbəbdən layihələrdə versiya nömrəsini hər qurma ilə artırmaq lazımdır.
Həmçinin, zaman-zaman tərtibatçı öz kitabxana filialını qurmalı və onun funksionallığını bütün asılılıqlara qarşı yoxlamalıdır, bunun üçün o, hamısının versiyasını əl ilə dəyişdirməlidir.
İlkin həll
Tez-tez və çoxlu versiya dəyişiklikləri ilə mən CI daxilində prosesi sadələşdirmək və avtomatlaşdırmaq istəyirəm. Rahat, tanınmış plaqinin köməyinə gəldiyi yer budur. versiyalar-maven-plugin - qoşun və işə salın
mvn -N versiyaları:set -DnewVersion=2.0.1
və Maven hər şeyi lazım olduğu kimi edəcək: bütün versiyaları əvəz edərək yuxarıdan aşağıya doğru iyerarxiyadan keçəcək - gözəllik! İndi yalnız bir çəkmə sorğusu qaldırmaq qalır, həmkarlar dəyişiklikləri nəzərdən keçirəcək və siz tez bir zamanda magistrala qoşula bilərsiniz. Tez? Necə olursa olsun. Bir neçə yüz pom.xml nəzərdən keçirmək üçün və bu kodu saymır. Bundan əlavə, heç kim bu qədər çox sayda dəyişdirilmiş fayl ilə birləşmə münaqişələrindən təhlükəsiz deyil. Burada qeyd etmək lazımdır ki, CI prosesində versiya dəyişiklikləri hər hansı bir şəkildə deyil, funksionallıqdakı dəyişikliklərlə birlikdə avtomatik olaraq baş verir.
Yeni funksiyalar
Bir müddət sakitləşdik və istefa verdik, gələnə qədər belə yaşadıq
mvn -Drevision = 2.0.0 təmiz paket
Sistem xassəsinin dəyərləri müəyyən edilmiş dəyərlərdən üstündürxassələri>.
Valideyn
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-valideyn
İlk CI Dostu
${revision}${sha1}${dəyişiklikçi}
...
1.3.1
- SNAPSHOT
nəsli
4.0.0
org.apache.maven.ci
ci-valideyn
${revision}${sha1}${dəyişiklikçi}
org.apache.maven.ci
ci-uşaq
...
2.0.0-SNAPSHOT versiyasını qurmaq istəyirsinizsə, sadəcə istifadə edin
mvn -Drevision = 2.0.0 təmiz paket
Buraxılış etmək istəyirsinizsə, sadəcə olaraq SNAPSHOT-u sıfırlayın
mvn -Dchangelist = təmiz paket
*Yuxarıdakı nümunələr buradan götürülüb
Sərt reallıq
Hər şey yaxşıdır və sağlamdır, məmnunluq hiss etməyin vaxtıdır, amma yox. Məlum oldu ki, bu üsul quraşdırma və yerləşdirmə üçün işləməyəcək, çünki depoda dərc olunan artefaktların təsvirlərində əvəz edilməyəcəkdir. ${revision} onun mənası haqqında və maven artıq nə olduğunu başa düşməyəcək.
org.apache
apache
${revision}
Tunelin sonunda bir işıq
Problemin həllini axtarmalıyıq. Vəziyyəti xilas edə bilərdi
Layihəyə plagin əlavə edilməsi
org.codehaus.mojo
flatten-maven-plugin
1.1.0
doğru
Yalnızca CiFriendlies
düzləşdirmək
proses resursları
düzləşdirmək
düzləşdirmək.təmizləmək
təmiz
təmiz
Bitti!
Xoşbəxt sonluq
Bundan sonra, bütün layihənin versiyasını dəyişdirmək və bütün asılılıqlara bu barədə məlumat vermək üçün sadəcə elementi redaktə etməliyik.təftiş> yalnız kökdə pom.xml. Eyni dəyişikliyə malik bu faylların yüz və ya ikisi yox, bir nəfərə çatır. Yaxşı, istifadə etməyə ehtiyac yoxdur versiyalar-maven-plugin.
Mənbə: www.habr.com