[Gelistirici] Pisi Actionsapi için Javamodules Eklentisi
Gökhan Özbulak
gozbulak at pardus.org.tr
30 Mar 2011 Çar 23:04:34 EEST
Merhaba,
Pisi Actionsapi'yi java uygulamalarının paketlenmesini kolaylaştırmak amacıyla
genişletmeyi düşünüyoruz. Bunun için aynı autotools ve pythonmodules
modullerinde olduğu gibi derleme ve yükleme işlemlerini olabildiğince jenerik
bir şekilde gerçekleştirmeyi sağlayan bir dizi fonksiyon içeren javamodules
adında bir modül gerçeklenmesi gerekiyor. Bu noktada java paketleri ile
uğraşan geliştiricilerden (ve tabi diğer tüm geliştiricilerden) geribildirim
almak tasarımı şekillendirmek açıısndan iyi olur diye düşünüyorum.
Modülün şu anki hali aşağıdaki gibi:
1) Derleme işlemi için varsayılan olarak Ant inşa sistemi kullanılmakta,
ayrıca Maven gibi diğer yaygın inşa sistemlerinin kullanılması esnekliği de
sağlanıyor. Örnek fonksiyon imzası:
def compile(build_tool = "ant", parameters = '', argument = '')
2) Paketçi derleme için gerekli direktifleri kendi doğrudan geçirmeli. Çünkü bu
noktada yaygın bir kullanım şekli mevcut değil. Depolardaki paketler göz önüne
alındığında Ant ile derlemek için çeşitli çağırım şekilleri:
"ant"
"ant compile"
"ant core"
"ant build jars"
"ant jar"
"ant compile experimental"
..
3) Derleme sonucu oluşan dosyaların (jar vb.) ikamet ettiği yerler de
çeşitlilik arz ediyor. Dosyalar genellikle kaynak kökü altında veya bazen
göreceli olarak "build" ve "dist" dizinleri altında bulunabiliyorlar. Buradaki
varsayılan yolun, paketçinin bu yolu yükleme fonksiyonunda ezebilmesi
kaydıyla, kaynak kökü olmasının iyi fikir olacağını düşünüyorum.
4) Yükleme kısmı jenerikliğe en kapalı kısım. Yapılabilecek en iyi şey,
derleme sonucu oluşan dosyaları kullanıcının yönlendirmesi
doğrultusunda(ilgili yol altında hangi kitaplıkların kullanılacağının liste
halinde geçirilmesi gibi) /usr/share/java altına göndermek gibi görünüyor. Bu
noktada klasik Actionsapi modül kalıbının biraz dışına çıkılmış oluyor, ancak,
bu durum, Ant'ın derleme işlemi için kullandığı build.xml dosyasının "make
install" kadar kapsamlı olamamasından kaynaklanıyor.
5) /usr/share altına giden kitaplıklara ileride başka kitaplık/uygulamalar
tarafından da erişilebilmesi için sınıfyolunun(classpath) yine modül
tarafından ayarlanması gerekiyor. Bu noktada, modülün, ileride paketin
kurulacağı sistemde /etc/conf.d altına gidecek sınıfyollarının tanımlandığı
bir dosya üretmesi gerekiyor.
İyi çalışmalar
--
Gökhan Özbulak / go
Pardus -- Tübitak/UEKAE
http://www.pardus.org.tr/eng
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi