Ant - ประเภทข้อมูล
Ant มีประเภทข้อมูลที่กำหนดไว้ล่วงหน้าจำนวนมาก อย่าสับสนระหว่างคำว่า "ชนิดข้อมูล" กับคำที่มีอยู่ในภาษาโปรแกรม แต่ให้ถือว่าเป็นชุดของบริการที่มีอยู่แล้วในผลิตภัณฑ์
ประเภทข้อมูลต่อไปนี้จัดเตรียมโดย Apache Ant
ชุดไฟล์
ชนิดข้อมูลชุดไฟล์แสดงถึงชุดของไฟล์ ใช้เป็นตัวกรองเพื่อรวมหรือยกเว้นไฟล์ที่ตรงกับรูปแบบเฉพาะ
ตัวอย่างเช่นอ้างอิงรหัสต่อไปนี้ ที่นี่แอตทริบิวต์ src ชี้ไปที่โฟลเดอร์ต้นทางของโครงการ
ชุดไฟล์จะเลือกไฟล์. java ทั้งหมดในโฟลเดอร์ต้นทางยกเว้นไฟล์ที่มีคำว่า 'Stub' ตัวกรองที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ถูกนำไปใช้กับชุดไฟล์ซึ่งหมายความว่าไฟล์ที่มีชื่อ Samplestub.java จะไม่ถูกแยกออกจากชุดไฟล์
<fileset dir = "${src}" casesensitive = "yes">
<include name = "**/*.java"/>
<exclude name = "**/*Stub*"/>
</fileset>
ชุดรูปแบบ
ชุดรูปแบบเป็นรูปแบบที่ช่วยให้สามารถกรองไฟล์หรือโฟลเดอร์ได้อย่างง่ายดายตามรูปแบบบางอย่าง รูปแบบสามารถสร้างได้โดยใช้อักขระเมตาต่อไปนี้ -
? - จับคู่อักขระหนึ่งตัวเท่านั้น
* - จับคู่อักขระศูนย์หรือหลายตัว
** - จับคู่ศูนย์หรือหลายไดเรกทอรีซ้ำ
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ชุดรูปแบบ
<patternset id = "java.files.without.stubs">
<include name = "src/**/*.java"/>
<exclude name = "src/**/*Stub*"/>
</patternset>
จากนั้นชุดรูปแบบสามารถนำกลับมาใช้กับชุดไฟล์ได้ดังนี้ -
<fileset dir = "${src}" casesensitive = "yes">
<patternset refid = "java.files.without.stubs"/>
</fileset>
รายการไฟล์
ชนิดข้อมูล filelist คล้ายกับชุดไฟล์ยกเว้นความแตกต่างดังต่อไปนี้ -
filelist มีรายชื่อไฟล์ที่ระบุชื่ออย่างชัดเจนและไม่รองรับไวลด์การ์ด
ชนิดข้อมูล filelist สามารถใช้ได้กับไฟล์ที่มีอยู่หรือไม่มีอยู่
ให้เราดูตัวอย่างประเภทข้อมูล filelist ต่อไปนี้ นี่คือแอตทริบิวต์webapp.src.folder ชี้ไปที่โฟลเดอร์แหล่งที่มาของเว็บแอปพลิเคชันของโครงการ
<filelist id = "config.files" dir = "${webapp.src.folder}">
<file name = "applicationConfig.xml"/>
<file name = "faces-config.xml"/>
<file name = "web.xml"/>
<file name = "portlet.xml"/>
</filelist>
ชุดตัวกรอง
การใช้ชนิดข้อมูลชุดตัวกรองร่วมกับงานคัดลอกคุณสามารถแทนที่ข้อความบางอย่างในไฟล์ทั้งหมดที่ตรงกับรูปแบบด้วยค่าทดแทน
ตัวอย่างทั่วไปคือการต่อท้ายหมายเลขเวอร์ชันเข้ากับไฟล์บันทึกย่อประจำรุ่นดังที่แสดงในรหัสต่อไปนี้
<copy todir = "${output.dir}">
<fileset dir = "${releasenotes.dir}" includes = "**/*.txt"/>
<filterset>
<filter token = "VERSION" value = "${current.version}"/>
</filterset>
</copy>
ในประมวลกฎหมายนี้ -
แอตทริบิวต์ output.dir ชี้ไปที่โฟลเดอร์ผลลัพธ์ของโครงการ
แอตทริบิวต์ releasenotes.dir ชี้ไปที่โฟลเดอร์บันทึกประจำรุ่นของโครงการ
แอตทริบิวต์ current.version ชี้ไปที่โฟลเดอร์เวอร์ชันปัจจุบันของโครงการ
งานคัดลอกตามชื่อที่แนะนำใช้เพื่อคัดลอกไฟล์จากตำแหน่งหนึ่งไปยังอีกที่หนึ่ง
เส้นทาง
pathชนิดข้อมูลมักใช้เพื่อแสดงคลาส - พา ธ รายการในเส้นทางจะถูกคั่นโดยใช้อัฒภาคหรือเครื่องหมายทวิภาค อย่างไรก็ตามอักขระเหล่านี้จะถูกแทนที่ในรันไทม์ด้วยอักขระตัวคั่นพา ธ ของระบบปฏิบัติการ
classpath ถูกตั้งค่าเป็นรายการไฟล์ jar และคลาสในโปรเจ็กต์ดังที่แสดงในตัวอย่างด้านล่าง
<path id = "build.classpath.jar">
<pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/>
<fileset dir = "lib">
<include name = "**/*.jar"/>
</fileset>
</path>
ในรหัสนี้ -
แอตทริบิวต์ env.J2EE_HOME ชี้ไปที่ตัวแปรสภาพแวดล้อม J2EE_HOME.
แอตทริบิวต์ j2ee.jar ชี้ไปที่ชื่อของไฟล์ jar J2EE ในโฟลเดอร์ฐาน J2EE