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