AtomHeartFather'den ipucu ile bunu anladım.
Önce bir ant xml dosyası yazmamız gerekiyor. Bu dosya yapı numarası saklanır ve artırılır edilecek dosya oluşturur ve daha sonra xml dosyası şu şekilde görünecektir kaynak kod dosyası üzerinden bakmak değişken public static final String BUILD_NUMBER = ".*";
için ${src}/com/yourPath/Main.java
ve mevcut yapı numarası
ile değiştirecektir:
<project name="MyProject" default="init" basedir=".">
<description>
simple example increment build variable
</description>
<!-- set global properties for this build -->
<property name="src" location="../src"/>
<target name="init">
<echo file="myAntOut.txt">My first ant ${src} ${line.separator}</echo>
<buildnumber/>
<replaceregexp file="${src}/com/yourPath/Main.java"
match="public\s+static\s+final\s+String\s+BUILD_NUMBER\s+=\s+".*";"
replace="public static final String BUILD_NUMBER = "${build.number}";"
byline="true"
/>
</target>
</project>
Ardından intelliJ'inizde (14.0.3 kullanıyorum) View->Tool Windows->Ant Build
'a tıklayın. Sonra, +
ve xml dosyanıza göz atın (xml tarafından kullanılan geçerli yolun, o xml dosyasının kendisi değil, inteliJ projesinin yolu olacağını unutmayın), böylece xml'nizi sakladığınız yere bağlı olarak location="../src"
bölümünü düzeltmek isteyebilirsiniz). Hedefimiz init
'u göreceksin, onu seçebilir ve play
düğmesini tıklayabilirsiniz. Eğer çalışırsa, Main.java
kaynak kodu dosyasında BUILD_NUMBER
artışını göreceksiniz. Şimdi otomatik olarak nasıl yapılacağı önemli bir ipucu: init
'a sağ tıklayın ve Execute on->Before Compilation
'u seçin. Bitti :)
İlginç bir soru. Çözümü hangi problemi çözer? –
Sadece basit bir intelliJ çözümü düşünemiyorum, ama '' karınca''nı kullanmaya ne dersiniz? IntelliJ içinden doğrudan bir ant görevini tetikleyebilirsin. Bu şekilde süreç IDE-agnostik olabilir. – AtomHeartFather
Petur: Pek değil - sadece meslektaşlarıma hangi aracımın sürümünü kullandıklarını sorabilirim ve sonuncusunu onlara söyleyebilirim. Elime vermeden önce el ile sürümü değiştirmeyi unutsam bile ... Bir sonraki adım, bir şekilde revizyon sistemi numarasıyla ilişkilendirmektir. Ama şimdi istedim sadece bir şey hızlı ve kirli ve fantezi gibi bir numara 125 gibi :) –