Ant ile Versiyon Numaralandırması

Geliştirdiğiniz uygulamanın sık sık yeni sürümünü çıkarıyorsanız, çıkardığınız sürüme versiyon numarası vermek oldukça faydalı olabiliyor. Özellikle uygulamanız aynı anda birden fazla versiyonu bulunabilecek bir uygulama ise(Desktop uygulaması,….) kullanıcılardan farklı versiyonlara ait farklı hatalar gelebilmektedir. Bu yüzden kullanıcının gönderdiği hatanın hangi versiyonda olduğunu bilmek işinizi oldukça kolaylaştırır.

Java ile geliştiridiğiniz projelerde sürüm otomasyonunu Ant ile yapıyorsanız versiyon numaralarını el ile vermektense bu versiyonlama işleminide otomatikleştirebilirsiniz. Özellikle bunu merkezi bir CI,build server üzerinde bu işlemi yapmak oldukça işinizi kolaylaştırır.

Ant scriptiniz içine aşağıdaki gibi satırları ekleyip numaralandırma işlemizi ant’a devredebilirsiniz.

buildinfo.properties

build.user=Administrator
build.num=0098
build.date=22.06.2009 10\:23

default.properties

name.build.info          = buildinfo.properties
name.build.referer       = ProjectVersion.java
name.build.prefix        = PROJEADI-
        <loadproperties srcfile="${basedir}/default.properties"></loadproperties>
	<loadproperties srcfile="${basedir}/buildinfo.properties"></loadproperties>

	<propertyfile file="${name.build.info}"
	 comment="Build Information File - DO NOT CHANGE">
	    <entry key="build.num"
	     type="int" default="0000"
	     operation="+" pattern="0000"/>
	    <entry key="build.date"
	     type="date"
	     value="now"
	     pattern="dd.MM.yyyy HH:mm"/>
		<entry key="build.user"
			type="string" value="${user.name}"/>
		
	</propertyfile>
	
	<replaceregexp file="${name.build.referer}"
	 match="@\(#\).*@"
	 replace="@(#)${name.build.prefix}-${build.num} (on:
	${build.date}) Built by : ${build.user}@"/>

Yukarıda gördüğünüz propertyfile Ant komutu içerisinde name.build.info yani buildinfo.properties dosyasının içerisine her defasında versiyon numarasını arttırarak yazmaktadır. Ardından replaceregexp komutu içerisinde name.build.referer yani ProjectVersiyon.java dosyasının içeriğine yukarıda arttırılan versiyonu ve diğer faydalı bilgileri buildinfo.properties içerisinden alıp yazmaktadır.

Ardından sizde projenizde uygun bir yere ProjectVersiyon.java içerisindeki bilgileri yazdırarak kullanıcıya hangi versiyonu kullandığını gösterebilirsiniz.

2 thoughts on “Ant ile Versiyon Numaralandırması

  1. Hasan

    Selam Cihat,

    Kaynak kod yönetici yazılımımız her commit’de yeni bir revision numarası veriyor. Build numarasına yine de ihtiyacımız olur mu? Yoksa, direk revision numarasını kullanmamız aynı kapıya mı çıkar?

    Teşekkürler

  2. M. Cihat Altuntaş Post author

    Selam Hasan,
    Evet kaynak kod yöneticileri versiyon numarası veriyor fakat bunu genelde kendi yazılımınızdaki versiyon numaralandırma politikasına uydurmak zor oluyor. Mesela siz şu şekilde sürüm çıkıyorusunuz 1.4.12.345 bunun sizin için anlamı : “1” majör,ana versiyon “4” minor,alt versiyon “12” bu versiyondaki kaçıncı sürüm(release), 345 ise build number,yani kaç kere Build Server’da build edilmiş.

    Ayrıca bu numarayı build sırasında kendi projenizde bir dosyaya yazarsanız “about” kısmında versiyon numarası olarak gösterebilirsiniz. Kaynak kod numaralandırması buna göre çok basit kalıyor.

Comments are closed.