Hakkımızda
1C'de yalnızca bir platform geliştirmiyoruz
Giriş
Maven'i çoğunlukla Java uygulamaları için bir derleme sistemi olarak kullanıyoruz ve bu kısa makalede, geliştirmeyi organize etme sürecinde karşılaştığımız sorunlardan birinden ve bu sorunun üstesinden gelmemize olanak sağlayan yaklaşımdan bahsetmek istiyoruz. sorun.
Önkoşullar ve iş akışı
Maven projelerimizde geliştirmenin özellikleri nedeniyle oldukça fazla modül, bağımlılık ve alt proje kullanıyoruz. Bir ağaçtaki pom dosyalarının sayısı onlarca, hatta yüzlerce olabilir.
Görünüşe göre: önemli değil, onu bir kez yarattılar ve unuttular. Tüm dosyalarda bir şeyi aynı anda değiştirmeniz veya eklemeniz gerekiyorsa, düzenleyicilerde ve IDE'lerde pek çok kullanışlı araç vardır. Pom.xml'de en yaygın düzenli değişiklik nedir? Proje versiyonlarında ve bağımlılıklarında değişiklik olduğuna inanıyoruz. Belki birisi bununla tartışmak ister ama bizde durum tam olarak budur. Bunun nedeni, çekirdekle birlikte birçok kütüphanemizi aynı anda geliştirmemiz ve derleme ve test sonuçlarının sürekli tekrarlanabilirliği açısından anlık görüntülerin kullanılmasının bize uygun bir yaklaşım gibi görünmemesidir. Bu nedenle projelerde versiyon sayısının her build ile yükseltilmesi gerekmektedir.
Ayrıca, zaman zaman bir geliştiricinin kendi kitaplık şubesini oluşturması ve bunun işlevselliğini tüm bağımlılıklara göre kontrol etmesi gerekir; bunun için de hepsinin sürümünü manuel olarak değiştirmesi gerekir.
İlk çözüm
Bu kadar sık ve çoklu sürüm değişiklikleriyle CI içindeki süreci basitleştirmek ve otomatikleştirmek istiyorum. Uygun, iyi bilinen bir eklentinin kurtarmaya geldiği yer burasıdır. version-maven-eklentisi - bağlayın ve başlatın
mvn -N sürümleri:set -DnewVersion=2.0.1
ve Maven her şeyi olması gerektiği gibi yapacak: hiyerarşide yukarıdan aşağıya doğru ilerleyecek, tüm versiyonların yerini alacak - güzellik! Artık geriye kalan tek şey bir çekme isteği oluşturmaktır; iş arkadaşlarınız değişiklikleri inceleyecek ve siz de hızlı bir şekilde bagaja katılabilirsiniz. Hızlıca? Nasıl olursa olsun. Birkaç yüz pom.xml inceleme için ve bu kodu saymıyor. Ayrıca, hiç kimse bu kadar çok sayıda değiştirilmiş dosyayla birleştirme çakışmalarına karşı güvende değildir. Burada şunu belirtmek gerekir ki, CI sürecinde sürüm değişiklikleri, işlevsellik değişiklikleriyle birlikte otomatik olarak gerçekleşir ve bir şekilde ayrı ayrı gerçekleşmez.
Yeni Özellikler
Bir süre sakinleştik ve kendimizi teslim ederek, çocuklar gelene kadar böyle yaşadık.
mvn -Drevision=2.0.0 temiz paket
Sistem özelliği değerleri, içinde tanımlanan değerlerden önceliklidir.özellikleri>.
Ebeveyn
4.0.0
org.apache
apache
18
org.apache.maven.ci
ebeveyn
İlk CI Dostu
${revision}${sha1}${changelist}
...
1.3.1
-ENSTANTANE FOTOĞRAF
torun
4.0.0
org.apache.maven.ci
ebeveyn
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-çocuk
...
2.0.0-SNAPSHOT sürümünü oluşturmak istiyorsanız, yalnızca şunu kullanın:
mvn -Drevision=2.0.0 temiz paket
Bir sürüm oluşturmak istiyorsanız SNAPSHOT'u sıfırlayın
mvn -Dchangelist= temiz paket
*Yukarıdaki örnekler şuradan alınmıştır:
Sert gerçeklik
Her şey yolunda ve sağlıklı, tatmin duygusunu hissetmenin zamanı geldi ama hayır. Depoda yayınlanan yapıtların açıklamalarında değiştirilmeyeceği için bu yöntemin kurulum ve dağıtım için işe yaramayacağı ortaya çıktı. ${revizyon} anlamını öğrenecek ve maven artık bunun neyle ilgili olduğunu anlamayacak.
org.apache
apache
${revizyon}
Bir tünelin sonunda bir ışık
Soruna çözüm aramamız gerekiyor. Durumu kurtarabilirdi
Projeye eklenti ekleme
org.codehaus.mojo
düzleştirme-maven-eklentisi
1.1.0
doğru
çözümYalnızcaCiFriendlies
düzleştirmek
süreç kaynakları
düzleştirmek
düzleştir.temiz
temiz
temiz
Bitti!
Mutlu son
Şu andan itibaren, tüm projenin versiyonunu değiştirmek ve tüm bağımlılıkların bundan haberdar olmasını sağlamak için sadece öğeyi düzenlememiz gerekiyor.revizyon> sadece kökte pom.xml. İncelemeye bu dosyalardan aynı değişikliğe sahip yüz veya iki tane değil, bir tanesi ulaşıyor. Neyse kullanmaya gerek yok version-maven-eklentisi.
Kaynak: habr.com