ติดตั้ง ant build tool และใช้กำหนด config ค่าที่ต้องการสำหรับ development และ production

Tags: antjava

ant build tool เป็น command line tool เพื่อช่วย automate งานบางอย่างในขั้นตอนของการพัฒนา program เช่นการ copy file , deploy หรือการแก้ไข config file ที่มีค่าบางอย่างแตกต่างกัน ระหว่าง production และ development เช่นค่า connection string

ในบทความนี้เราจะมาศึกษาวิธีการติดตั้ง ant และใช้งานแก้ไข config file ครับ

ติดตั้ง ant

download binary จาก http://ant.apache.org/bindownload.cgi แตก zip file ออกมา

แล้ว copy ไปวางในเครื่องเช่น C:\apache-ant-1.9.7

จากนั้นให้เข้าไปกำหนดค่าเหล่านี้ที่ environment variable

สร้าง variable ใหม่ตั้งชื่อว่า ่ ANT_HOME กำหนดค่าเป็น path ที่เราเก็บ ant folder เช่น C:\apache-ant-1.9.7 ตัวอย่างเช่น

image title

ตรวจสอบว่าเรามี JDK และ JAVA_HOME variable แล้วยัง

image title

ทำการเพิ่มค่าดังนี้เข้าไปเข้าไปที่ path variable %ANT_HOME%\bin ก่อนกำหนดค่าอย่าลืมคั้นด้วย ; (semi colon)

image title

กด OK เพื่อบันทึกค่าที่เปลี่ยนแปลง เปิด command prompt แล้วพิมพ์ ant เพื่อทดสอบว่าเราได้ติดตั้ง ant เรียบร้อยแล้ว

image title

หากมีข้อความแสดงว่า

put your code here

Buildfile: build.xml does not exist! Build failed แสดงว่าเราได้ทำการติดตั้ง ant เรียบร้อยแล้ว

สร้าง ant build file ง่ายๆ แสดงข้อความ hello world

การใช้งาน ant นั้นเราจะสร้าง file ที่เรียกว่า build file ซึ่งใน file นี้จะประกอบด้วยชุดคำสั่งต่างๆ ที่เรียกว่า task เช่นคำสั่งในการ output ข้อความออกมาที่หน้าจอ คือ task ที่ชื่อว่า echo

ใน build file จึงประกอบด้วย task ต่างๆ เพื่อทำงาน automate ต่างๆ ตามที่เราต้องการ

โดยปกติเราจะตั้งชื่อ build file ว่า build.xml และเมื่อเราเปิด command line ที่ folder ที่เก็บ build.xml แล้วใช้คำสั่ง ant ตัว ant command จะเรียกใช้ build.xml โดยอัตโนมัติ

ตัวอย่าง build.xml อย่างง่าย จะประกอบด้วย root XML element project และภายใน element นี้จะประกอบด้วย task ต่างๆ

build.xml

<project name="MyProject">

	<echo message="Hello world"/>

</project>

ในตัวอย่างนี้จะเป็นการแสดง output ข้อความว่า Hello world ออกมาที่หน้าจอ ด้วย task ที่ชื่อว่า echo

เมื่อเราเปิด command prompt และพิมพ์คำสั่ง ant จะได้ผลลัพธ์ดังนี้

image title

สร้าง build file เพื่อกำหนดค่าที่ต่างกันระหว่าง production และ development

ตัวอย่างเช่น เราต้องการกำหนดค่า connection string ของ config file ที่ต่างกันระหว่าง production และ development

เราสร้างสร้าง build file แบบนี้ได้เลยครับ

build.xml

<project name="ConfigurationTransformer">

	<property file="${env}.properties"/>

	<copy file="app-template.config" 
		tofile="app.config" encoding="utf-8" 
		outputencoding="utf-8" overwrite="true">
            <filterchain>
                <expandproperties />
            </filterchain>
        </copy>

</project>

  • property task เพื่อ include property ที่ต่างกันในแต่ละ environment
  • copy เพื่อสร้าง config ใหม่จาก app-template.config ที่เป็น template file และกำหนดค่าต่างๆ ที่ได้จาก property ของแต่ละ environment

dev.properties

dbUrl=local ip
dbPort=1433

pro.properties

dbUrl=server ip
dbPort=1434

app-template.config

db{
   host=${dbUrl}
   port=${dbPort}
}

ตัวอย่าง file ทั้งหมดใน folder

image title

ทดลองใช้งาน build.file

เปิด command prompt ที่ folder เก็บ build file ใช้คำสั่ง ant -Denv=dev สำหรับ development environment และคำสั่ง ant -Denv=pro สำหรับ production environment

image title

ผลลัพธ์ที่ได้

app.config


db{
   host=local ip
   port=1433
}

เมื่อทดสอบกับ คำสั่ง ant -Denv=pro ผลลัพธ์ที่ได้

db{
   host=server ip
   port=1434
}

credit

Personalize .NET Configuration Files with NANT