Kamis, 16 Desember 2010

OTOMATISASI PROSES BUILD DENGAN APACHE ANT

tirta|concept > sedikit berbagi penggunaan apache ant untuk build ;D semoga berguna......

Build tool seperti Apache Ant digunakan untuk menyediakan sumber daya dan melaksanakan proses yang membangun software dari bentuk source code menjadi aplikasi yang siap didistribusikan.

Otomatisasi dilakukan dengan menggunakan sistem operasi windows, adapun perangkat lunak terkait yang dibutuhkan adalah : java dengan jdk 1.6 keatas dan Apache Ant 1.8 keatas.

• Buat direktori baru.
Direktori yang dibuat, digunakan untuk meletakkan file – file yang terkait denga proses build yang dilakukan oleh Apache Ant. Buat folder sqa yang diletakkan pada C:\Document and Setting\... . Isi folder sqa adalah build dan src, serta masing‐ masing berisi folder classes dan simpleant.

• Membuat program sederhana HelloWorld.java
File HelloWorld.java diletakkan pada folder simpleant.

• Kompilasi dan eksekusi file program tanpa menggunakan Ant.
Masuk terlebih dahulu ke direktori sqa, setelah itu ketikkan perintah dibawah ini.

C:\Users\tirtaconcept\sqa>javac -sourcepath src -d build/classes/
src/simpleant/ HelloWorld.java
Perintah javac diikuti oleh –sourcepath src, yang gunanya memberi tahu java bahwa data yang akan dikompilasi di direktori src. Selanjutnya –d berguna untuk memberi tahu hasil kompilasi. Dilanjutkan perintah berikut ini.

C:\Users\tirtaconcept\sqa>java -cp build/classes simpleant.HelloWorld
Hello World
Perintah –cp (class path) yang mengikuti java berarti menunjukkan bahwa HelloWorld.java yang dikompilasi, class nya diletakkan di direktori classes. Kompilasi berhasil dilakukan jika “Hello World” muncul di layar.

• Kompilasi dan eksekusi file menggunakan Ant.
Buat lah file build.xml yang berisikan target yang akan dikerjakan.
<project name="HelloWorld" basedir="." default="main">
...
...
<property name="main-class" value="simpleant.HelloWorld"/>
Name dari project menggunakan nama file, serta value dari property main‐class juga berisi file yang akan dikompilasi. basedir="." default, titik menunjuk pada current directory build.xml berada. Selanjutnya "main"> berarti metode pada source code yang dijalankan oleh Ant. Property yang berisi keterangan direktori yang digunakan dituliskan lengkap. Selanjutnya menuliskan target – target yang hendak dikerjakan oleh Ant.

<target name="clean">
<delete dir="${build.dir}"/>
Pada target clean dilakukan penghapusan direktory build.

<target name="run" depends="jar">
<mkdir dir="${classes.dir}"/>
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
Pada target run, bergantung pada target jar. run menjalankan perintah membuat direktori classes lalu ada proses anak yang dilakukan (fork) yaitu mengakses file jar pada direktori jar.

<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar"
basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
Pada target jar, bergantung pada target compile yang sebelumnya dilakukan. jar akan membuat direktori jar yang digunakan untuk meletakkan file (destfile : destination file) executable jar (java archieve) berdasarkan pada kompilasi file class pada direktori classes. Dibuat juga file manifest dengan nama Main‐Class dengan value main‐class.

<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
Pada target compile, akan membuat direktori classes. Selanjutnya menjalankan file program yang ada pada direktori src dimana destination dir nya adalah direktori classes. Class dari program tersebut berada pada direktori classes. direktori sqa isinya berubah menjadi seperti berikut.

C:\Users\tirtaconcept\sqa>tree
Folder PATH listing
Volume serial number is B8D0-C1DF
C:.
├───build
│ ├───classes
│ │ └───simpleant
│ └───jar
└───src
└───simpleant

• Menjalankan Ant.
Ketikkan Ant diikuti dengan target yang telah dibuat :
C:\Users\tirtaconcept\sqa>ant clean
Buildfile: C:\Users\tirtaconcept\sqa\build.xml
clean:
[delete] Deleting directory C:\Users\tirtaconcept\sqa\build
BUILD SUCCESSFUL
Hasilnya folder build dihapus dan muncul pesan Build Successful.
Buildfile: C:\Users\tirtaconcept\sqa\build.xml
run:
[java] Hello World
BUILD SUCCESSFUL
Hasilnya Hello World muncul di layar dan muncul pesan Build Successful.

Kompilasi tanpa Ant:
C:\Users\tirtaconcept\sqa>javac -sourcepath src -d build/classes/
src/simpleant/
HelloWorld.java
C:\Users\tirtaconcept\sqa>java -cp build/classes simpleant.HelloWorld
Hello World

Kompilasi menggunakan Ant:
C:\Users\tirtaconcept\sqa>ant run
Buildfile: C:\Users\tirtaconcept\sqa\build.xml
compile:
[mkdir] Created dir: C:\Users\tirtaconcept\sqa\build\classes
[javac] C:\Users\tirtaconcept\sqa\build.xml:12: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 3 source files to C:\Users\tirtaconcept\sqa\build\classes
jar:
[mkdir] Created dir: C:\Users\tirtaconcept\sqa\build\jar
[jar] Building jar: C:\Users\tirtaconcept\sqa\build\jar\HelloWorld.jar
run:
[java] Hello World
BUILD SUCCESSFUL
Total time: 1 second

tirta|concept > contoh lain

Tidak ada komentar:

Posting Komentar