1. ภาพรวม
ANT เป็นเครื่องมือที่เชื่อมต่อการรวบรวมซอฟต์แวร์การทดสอบการปรับใช้และขั้นตอนอื่น ๆ ในการดำเนินการโดยอัตโนมัติส่วนใหญ่สำหรับการพัฒนาซอฟต์แวร์ในสภาพแวดล้อม Java ในการพัฒนาซอฟต์แวร์จริงมีหลายสถานที่ที่จะใช้ ANT
สภาพแวดล้อมการพัฒนา:
คัดลอกรหัสรหัสดังนี้:
ระบบ: Windows
JDK: 1.6+
IDE: ECLIPSE
มด: 1.9.1
ประการที่สองข้อดี
ANT เป็นโครงการย่อยในไดเรกทอรีจาก Jakarta ของ Apache Software Foundation
1. Cross -Platform: ANT เขียนด้วยภาษาชวาบริสุทธิ์ดังนั้นจึงมีการข้ามที่ดี -แพลตฟอร์ม
2. การดำเนินการอย่างง่าย: มดประกอบด้วยงานในตัวและงานเสริม ANT ต้องการไฟล์ XML (สร้างไฟล์) มดสามารถดำเนินการต่าง ๆ ได้โดยเรียกต้นไม้เป้าหมาย แต่ละงานใช้วัตถุอินเตอร์เฟสเฉพาะ
3. การบำรุงรักษาอย่างง่ายการอ่านที่ดีและการรวมเข้าด้วยกัน: เนื่องจากไฟล์ที่สร้างขึ้นมดไฟล์รูปแบบ XML นั้นง่ายต่อการดูแลและเขียนและโครงสร้างนั้นชัดเจนมาก มดสามารถรวมเข้ากับสภาพแวดล้อมการพัฒนา เนื่องจากลักษณะการทำงานที่เรียบง่ายและการทำงานที่เรียบง่ายของ Ant จึงเป็นเรื่องง่ายที่จะรวมเข้ากับสภาพแวดล้อมการพัฒนาบางอย่าง
ประการที่สามการติดตั้งและการกำหนดค่า
1. ดาวน์โหลด ant, http://mirror.esocc.com/apache/ant/binaries/apache-nt -nt-9.1-bin.zip
2. คลายซิปแพ็คเกจบีบอัดซิปและวางแพ็คเกจบีบอัดที่คุณต้องการวางไดเรกทอรีที่คุณต้องการวาง ฉันวางไว้ที่นี่ใน d: /apache-at-1.9.1 โครงสร้างไดเรกทอรีมีดังนี้:
BIN เป็นโปรแกรมที่กำลังดำเนินการโปรแกรมมด
เช่น: เรียกใช้ ANT.BAT ใน CMD เพื่อดำเนินการโปรแกรม
เทมเพลตเอาต์พุต XSL ทั้งหมดจะถูกเก็บไว้ในไดเรกทอรี ETC สร้างเอาต์พุต XML ส่งออกที่ได้รับการปรับปรุงของงานต่างๆเพื่อให้ไฟล์บิลด์ของคุณกำจัดคำเตือนที่ล้าสมัย
สิ่งที่เก็บไว้ในไดเรกทอรี LIB คือแพ็คเกจ JAR ที่โปรแกรม ANT จำเป็นต้องพึ่งพา
Directory Manual เป็นเอกสารช่วยเหลือของโปรแกรม ANT
3. ในคอมพิวเตอร์ของฉัน> คุณสมบัติคลิกขวา> การกำหนดค่าระบบขั้นสูง-> กำหนดค่ามดในตัวแปรสภาพแวดล้อม
ตัวแปรระบบใหม่ ant_home = d: /apache-at-1.9.1
ด้วยวิธีนี้ตัวแปรสภาพแวดล้อมได้รับการกำหนดค่า แต่หลักฐานที่คุณต้องกำหนดค่าตัวแปรสภาพแวดล้อมของ JDK หากคุณไม่ได้กำหนดค่าตัวแปรสภาพแวดล้อมของ JDK โปรดกำหนดค่าตัวแปร JDK ก่อน วิธีการกำหนดค่าสภาพแวดล้อม JDK มีดังนี้:
(1) ติดตั้ง JDK ไปยังไดเรกทอรีเริ่มต้น: C:/โปรแกรมโปรแกรม/Java/JDK1.5.0_05 (ไม่มี JDK ไปที่การดาวน์โหลดอย่างเป็นทางการหนึ่ง)
C:/ไฟล์โปรแกรม/Java/JDK1.5.0
บทบาท: บอกระบบ JVM ว่า JVM อยู่ที่ไหน
(2) ขวา -คลิกคอมพิวเตอร์ของฉันเลือกแอตทริบิวต์, ตัวแปรขั้นสูง, ตัวแปรสภาพแวดล้อม
(3) สร้างขึ้นใหม่ที่แถบตัวแปรระบบกล่องโต้ตอบตัวแปรระบบใหม่จะปรากฏขึ้นและ Java_home จะถูกกรอกในชื่อตัวแปรค่าตัวแปร: C:/ไฟล์โปรแกรม/Java/JDK1.5.0_05
(4) หลังจากการยืนยันให้สร้างตัวแปรสภาพแวดล้อมใหม่ในคอลัมน์ตัวแปรระบบ (s)
(5) หลังจากการยืนยันแล้วให้ค้นหาและเลือกตัวเลือกด้วยตัวแปรเป็นพา ธ ในคอลัมน์ตัวแปรระบบ
%java_home%/bin
หากไม่พบตัวแปรเส้นทางให้สร้างตัวเองใหม่ด้วยตัวคุณเอง!
หากคุณไม่ต้องการเรียกใช้ไปยังไดเรกทอรีที่ชั้นเรียนอยู่ทุกครั้งที่คุณรันจากนั้นเรียกใช้คำสั่ง Java คุณสามารถใส่ไฟล์คลาสทั้งหมดภายใต้องค์กรไดเรกทอรี Unified แล้วเพิ่มไดเรกทอรีนี้ลงใน ClassPath
รหัสทดสอบมีดังนี้:
คัดลอกรหัสรหัสดังนี้:
การทดสอบระดับสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {{
System.out.println ("Hello World!");
-
-
หลังจากบรรณาธิการของ Notepad ได้รับการแก้ไขเป็นไฟล์ test.java (ชื่อไฟล์และชื่อเดียวกัน) เปิดหน้าต่างบรรทัดคำสั่ง
ซีดีไปยังไดเรกทอรีที่ไฟล์อยู่:
คัดลอกรหัสรหัสดังนี้:
javac test.java // Compile Commands
Java Test // Execute Program
หากเอาต์พุตคือ: Hello World! Ok, กำหนดค่ามิฉะนั้นให้ตรวจสอบอีกครั้ง
ประการที่สี่ทดสอบมด
ป้อนมดในหน้าต่าง DOS ที่ใช้ CMD ดังแสดงในรูป:
หากสิ่งนี้ปรากฏขึ้นแสดงความยินดีกับการติดตั้งของคุณ! มิฉะนั้นจะล้มเหลวและตรวจสอบขั้นตอนก่อนหน้านี้ผิด คำสั่งข้างต้นจะเรียกใช้โปรแกรม ANT และ ANT ดำเนินการในงาน build.xml โดยค่าเริ่มต้น
หากการติดตั้งล้มเหลวดูว่ามีบางสถานการณ์:
1. ไม่มีข้อผิดพลาดในการกำหนดค่า java_home หรือการกำหนดค่าและ Java_home/bin/java.exe มีอยู่จริง
2. ไม่มีการกำหนดค่า ant_hoem หรือข้อผิดพลาดการกำหนดค่าและ ant_home/bin/ant.bat มีอยู่จริง
3. ตรวจสอบตัวแปรเส้นทางของตัวแปรสภาพแวดล้อมของคุณมีไม้และการกำหนดค่า ... ;%ang_home%/bin;
PATH%= ... อาจจะเป็นอื่น ๆ ... ;%ant_home%/bin;
5. การทำงานของมด
เมื่อมดเรียกใช้คำสั่งบางครั้งจะมีห้องสมุดขวดพาร์ค ห้องสมุดเหล่านี้จะมีอยู่ในแต่ละโครงการ ANT ดังนั้นในเวลานี้เราสามารถใส่แพ็คเกจ Jar นี้ลงในไดเรกทอรี ANT_HOME/LIB เป็นห้องสมุดทั่วโลก
หากคุณไม่ต้องการ "มลพิษ" โปรแกรม ANT ดั้งเดิมคุณสามารถใส่แพ็คเกจ JAR ในไดเรกทอรีผู้ใช้ Windows ปัจจุบัน หากไม่มีไดเรกทอรีข้างต้นก็สามารถสร้างขึ้นได้ด้วยตนเอง
หากคุณต้องการเพิ่ม lib ชั่วคราวและไม่ต้องการเพิ่ม lib ให้กับวิศวกรรมมดในปัจจุบัน คุณสามารถระบุพารามิเตอร์ LIB ที่ขึ้นอยู่กับเมื่อเรียกใช้โปรแกรม ANT
ในเวลาเดียวกันคุณสามารถเพิ่มโครงการของคุณลงในแพ็คเกจ Jar ในไดเรกทอรี ClassPath ของ Build Project ปัจจุบัน
6. คำสั่งมด
คำอธิบายองค์ประกอบทางไวยากรณ์มีดังนี้:
-ช่วย
แสดงข้อมูลความช่วยเหลือของคำสั่ง ANT และตัวเลือกของมัน
-projecthelp
จอแสดงผลประกอบด้วยเอกสารช่วยเหลือที่เขียนโดยผู้ใช้ทุกคนในไฟล์ที่สร้างสรรค์ นั่นคือข้อความของแอตทริบิวต์คำอธิบายในแต่ละรายการ <garal> และข้อความใด ๆ ที่รวมอยู่ในองค์ประกอบ <scription> เป้าหมายของแอตทริบิวต์คำอธิบายคือเป้าหมายหลัก (เป้าหมายหลัก) และเป้าหมายที่ไม่มีแอตทริบิวต์นี้แสดงเป็นเป้าหมายย่อย
-Version
จำเป็นต้องแสดงข้อมูลเวอร์ชันแล้วออก
-เงียบ
การยับยั้งไม่ใช่ข่าวส่วนใหญ่ที่สร้างขึ้นโดยงาน Echo ในไฟล์การก่อสร้าง
-คำกริยา
แสดงข้อความโดยละเอียดของการดำเนินการแต่ละครั้งในระหว่างกระบวนการก่อสร้าง ตัวเลือกนี้สามารถเลือกได้ด้วยตัวเลือก -Debug เท่านั้น
-debug
แสดงให้ผู้พัฒนามดและงานได้ทำเครื่องหมายข้อความเพื่อแก้ไขข้อความ ตัวเลือกนี้สามารถเลือกได้อย่างใดอย่างหนึ่งด้วย -Verbose
-emacs
จัดรูปแบบข้อความบันทึกเพื่อให้สามารถวิเคราะห์ได้อย่างง่ายดายโดย Shellmode ของ Emacs;
-ชื่อไฟล์ logfile
รีเซ็ตเอาต์พุตบันทึกเป็นไฟล์ที่ระบุ
-logger classname
ระบุคลาสเพื่อประมวลผลบันทึกของ Ant คลาสที่ระบุจะต้องใช้ org.apache.tools.ant.buildlogger อินเตอร์เฟส
-listener classname
เพื่อประกาศคลาสการตรวจสอบและเพิ่มขึ้นในรายการผู้ฟัง ตัวเลือกนี้มีประโยชน์มากเมื่อ ANT และ IDE หรือโปรแกรม Java อื่น ๆ รวมเข้าด้วยกัน คุณสามารถอ่านบทที่ 6 เพื่อทำความเข้าใจข้อมูลเพิ่มเติมเกี่ยวกับหัวหน้างาน คลาสการฟังที่ระบุจะต้องเขียนเป็นการประมวลผลของข้อความการก่อสร้างที่สามารถจัดการกับ Ant ได้
-ชื่อไฟล์ไฟล์
ระบุไฟล์ก่อสร้างที่คุณต้องดำเนินการ ไฟล์ก่อสร้างเริ่มต้นคือ build.xml
-dproperty = ค่า
กำหนดชื่อลักษณะ -คู่หูบนบรรทัดคำสั่ง
-ค้นหาชื่อไฟล์
ระบุไฟล์ก่อสร้างที่ควรประมวลผล แตกต่างจากตัวเลือก BuildFile หากไม่พบไฟล์ที่ระบุในไดเรกทอรีปัจจุบัน -ค้นหาต้องค้นหาในไดเรกทอรีหลัก การค้นหานี้จะดำเนินการต่อไปในไดเรกทอรีบรรพบุรุษของมันจนกว่ารูทของระบบไฟล์และหากไม่พบไฟล์การก่อสร้างจะล้มเหลว
-tuoproxy JDK1.5 หรือมากกว่าสามารถใช้การตั้งค่าตัวแทน
-NouserLib ไม่ได้ใช้แพ็คเกจ JAR ใน lib ผู้ใช้เมื่อทำงาน
-Nice Design ลำดับความสำคัญของเธรดหลัก
-logFile ใช้บันทึกบันทึกที่ระบุ
-NoInput ไม่อนุญาตอินพุตแบบโต้ตอบ
-การดำเนินการ -k -k การดำเนินการไม่ได้ขึ้นอยู่กับเป้าหมายทั้งหมด
-propertyfil
คัดลอกรหัสรหัสดังนี้:
<project default = "all">
<property name = "pro_a" value = "a value" />
<property name = "pro_b" value = "b value" />
<path id = "rt.phth">
<PathElement local = "$ {java.home} /jre/lib/rt.jar"/>
</path>
<target name = "all">
<javac srcdir = ".">
<classpath refid = "A.path" />
</javac>
</source>
</project>
สังเกต:
●ไฟล์ที่สร้างสรรค์ทั้งหมดจะต้องมีองค์ประกอบ <project> และอย่างน้อยหนึ่งองค์ประกอบ <garge>
●แอตทริบิวต์เริ่มต้นสำหรับองค์ประกอบ <project> ไม่จำเป็นต้องใช้ค่าเริ่มต้น
●ไฟล์การก่อสร้างไม่จำเป็นต้องมีชื่อว่า build.xml แต่ build.xml เป็นชื่อไฟล์เริ่มต้นที่มดต้องการค้นหา
●แต่ละไฟล์การก่อสร้างสามารถมีองค์ประกอบ <Project> หนึ่งองค์ประกอบเท่านั้น
ป้อนรหัสคัดลอกไดเรกทอรี build.xml ปัจจุบันในหน้าต่าง CMD ดังนี้:
มด
เรียกใช้ ANT ใน build.xml ในไดเรกทอรีปัจจุบันเพื่อดำเนินการเป้าหมายเริ่มต้น
คัดลอกรหัสรหัสดังนี้:
ant -buildfile build -test.xml
เรียกใช้ ANT ใน build-test.xml ในไดเรกทอรีปัจจุบันเพื่อเรียกใช้เป้าหมายเริ่มต้น
คัดลอกรหัสรหัสดังนี้:
ant -buildfile build -test.xml สะอาด
เรียกใช้มดใน build-test.xml ในไดเรกทอรีปัจจุบันและดำเนินการเป้าหมายที่เรียกว่า Clean
คัดลอกรหัสรหัสดังนี้:
ant -buildfile build -test.xml -dbuild = build/classes สะอาด
เรียกใช้มดใน build-test.xml ในไดเรกทอรีปัจจุบันดำเนินการเป้าหมายที่เรียกว่า Clean และตั้งค่าของแอตทริบิวต์การสร้างเป็น build/classes
7. สคริปต์มด: ใช้โหนดองค์ประกอบและแอตทริบิวต์คำสั่งคำสั่ง
1. องค์ประกอบโหนดโครงการ
องค์ประกอบโครงการเป็นองค์ประกอบรูทของไฟล์ส่วนประกอบมด ในแต่ละองค์ประกอบโครงการสามารถรวมองค์ประกอบเป้าหมายหลายอย่าง รายการถัดไปผู้อ่านคุณลักษณะขององค์ประกอบโครงการ
●แอตทริบิวต์ชื่อ: ชื่อสำหรับการระบุองค์ประกอบโครงการ
●แอตทริบิวต์เริ่มต้น: ชื่อของการดำเนินการเป้าหมายของ DearGet เมื่อโครงการถูกดำเนินการตามค่าเริ่มต้น
●แอตทริบิวต์ AffleIR: ใช้เพื่อระบุตำแหน่งของเส้นทางฐาน เมื่อไม่ได้ระบุแอตทริบิวต์นี้การแนบไฟล์ส่วนประกอบ ANT จะถูกใช้เป็นไดเรกทอรีเบนช์มาร์ก
คัดลอกรหัสรหัสดังนี้:
<?
<project name = "Ant-Project" default = "print-dir" bases = ".">
<target name = "print-dir">
<echo message = "ฐาน dia คือ: $ {basedir}" />
</source>
</project>
จะเห็นได้จากตัวอย่างข้างต้นว่าค่าของคุณสมบัติเริ่มต้นคือการพิมพ์ DIR ที่นี่นั่นคือเมื่อคำสั่ง ANT กำลังทำงานหากเป้าหมายไม่ได้ระบุเป้าหมายเริ่มต้น (Print-DIR) จะถูกดำเนินการ นอกจากนี้ค่าของแอตทริบิวต์ที่ใช้คือ "."
2. องค์ประกอบโหนดเป้าหมาย
เป้าหมายคือหน่วยดำเนินการพื้นฐานหรืองานของ ANT ซึ่งสามารถมีหน่วย/งานเฉพาะหนึ่งหน่วยขึ้นไป หลายเป้าหมายสามารถมีการพึ่งพาซึ่งกันและกัน มันมีคุณลักษณะดังต่อไปนี้:
●แอตทริบิวต์ชื่อ: ระบุชื่อขององค์ประกอบเป้าหมายซึ่งไม่ซ้ำกันในองค์ประกอบโครงการ เราสามารถระบุเป้าหมายได้โดยระบุชื่อขององค์ประกอบเป้าหมาย
●ขึ้นอยู่กับแอตทริบิวต์: มันถูกใช้เพื่ออธิบายความสัมพันธ์การพึ่งพาระหว่างเป้าหมาย ANT จะดำเนินการแต่ละเป้าหมายตามลำดับของเป้าหมายในคุณสมบัติขึ้นอยู่กับและเป้าหมายที่ขึ้นอยู่กับจะถูกดำเนินการก่อน
●หากแอตทริบิวต์: มันถูกใช้เพื่อตรวจสอบว่าแอตทริบิวต์ที่ระบุมีอยู่
●เว้นแต่แอตทริบิวต์: ฟังก์ชั่นของแอตทริบิวต์นี้ตรงข้ามกับฟังก์ชั่นของแอตทริบิวต์ IF
●แอตทริบิวต์คำอธิบาย: แอตทริบิวต์นี้เป็นคำอธิบายสั้น ๆ และคำอธิบายของฟังก์ชั่นเป้าหมาย
ตัวอย่าง:
คัดลอกรหัสรหัสดังนี้:
<?
<project name = "ant-timeget" default = "print">
<target name = "version" if = "ant.java.version">
<echo message = "java version: $ {ant.java.version}" />> >>
</source>
<target name = "print" ขึ้นอยู่กับ = "เวอร์ชัน" เว้นแต่ = "เอกสาร">
<Scription>
ตัวอย่างขึ้นอยู่กับ!
</คำอธิบาย>
<echo message = "ฐาน dia คือ: $ {basedir}" />
</source>
</project>
จากผลลัพธ์ต่อไปนี้เราจะเห็นว่าเรากำลังเรียกใช้เป้าหมายของการพิมพ์ 1.6 "หลังจากดำเนินการเวอร์ชันแล้วดำเนินการเนื่องจากเอกสารไม่มีอยู่และเว้นแต่แอตทริบิวต์จะเข้าสู่เป้าหมายเมื่อไม่มีการดำรงอยู่มันจะเห็นได้ว่าการพิมพ์สามารถดำเนินการข้อมูลการส่งออก:" [echo] พื้นฐาน DIR DIR คือ: D: D:/Workspace/Antexample/Build "
3. องค์ประกอบโหนดคุณสมบัติคุณสมบัติ
องค์ประกอบคุณสมบัติสามารถถือได้ว่าเป็นคำจำกัดความของพารามิเตอร์หรือพารามิเตอร์ หากคุณต้องการแนะนำไฟล์ภายนอกเช่น build.properties ไฟล์คุณสามารถอ้างอิงได้ด้วยเนื้อหาต่อไปนี้:
<property file = "build.properties"/>/>
องค์ประกอบคุณสมบัติสามารถใช้เป็นค่าแอตทริบิวต์ของงาน ในงานมันสามารถทำได้โดยการวางชื่อแอตทริบิวต์ระหว่าง $ {ชื่อแอตทริบิวต์} และวางไว้ในตำแหน่งของค่าแอตทริบิวต์งาน
ANT ให้คุณลักษณะบางอย่างในตัว ในเวลาเดียวกัน ANT ยังให้คุณลักษณะบางอย่างในตัวของมันเองดังต่อไปนี้:
พื้นฐาน: เส้นทางที่แน่นอนของรายการฐานโครงการ;
ANT.FILE: เส้นทางที่แน่นอนของ BuildFile
Ant.version: ข้อมูลเวอร์ชันมดบทความนี้คือ 1.8.1;
ant.project.name: ชื่อของโครงการที่ระบุปัจจุบันนั่นคือค่าคุณสมบัติชื่อของโครงการที่กล่าวถึงก่อนหน้านี้;
ant.java.version: เวอร์ชัน JDK ที่ตรวจพบโดย Ant บทความนี้คือ 1.6
ตัวอย่างเช่นดังนี้:
คัดลอกรหัสรหัสดังนี้:
<project name = "ant-project" default = "ตัวอย่าง">
<property name = "name" value = "jojo" />
<property name = "age" value = "25" />
<target name = "ตัวอย่าง">
<echo message = "ชื่อ: $ {name}, อายุ: $ {age}" />>> >>
</source>
</project>
ในตัวอย่างข้างต้นผู้ใช้ตั้งค่าแอตทริบิวต์สองชื่อชื่อและอายุ
4. คำสั่งคัดลอก
การคัดลอกส่วนใหญ่จะใช้เพื่อคัดลอกไฟล์และไดเรกทอรี ตัวอย่างเช่นดังนี้:
●คัดลอกไฟล์เดียว:
คัดลอกรหัสรหัสดังนี้:
<copy file = "old.txt" tofile = "new.txt"/>>
●คัดลอกไดเรกทอรีไฟล์:
คัดลอกรหัสรหัสดังนี้:
<คัดลอกวันนี้ = "../ dest_dir">
<fileset dir = "src_dir"/>
</copy>
●คัดลอกไฟล์ไปยังไดเรกทอรีอื่น:
คัดลอกรหัสรหัสดังนี้:
<copy file = "src.txt" todir = "c:/base"/>>
5. ลบคำสั่ง
ลบไฟล์หรือไดเรกทอรีดังต่อไปนี้:
●ลบไฟล์:
คัดลอกรหัสรหัสดังนี้:
<delete file = "/res/images/cat.jpg"/>>
●ลบไดเรกทอรี:
คัดลอกรหัสรหัสดังนี้:
<delete dir = "/res/image"/>>>>
●ลบไฟล์ JAR ทั้งหมดหรือไดเรกทอรีที่ว่างเปล่า:
คัดลอกรหัสรหัสดังนี้:
<delete intextyDirs = "true">
<fileset dir = "." รวมถึง = "**/*. jar"/>
</ลบ>
6. คำสั่ง mkdir
สร้างไดเรกทอรี
คัดลอกรหัสรหัสดังนี้:
<mkdir dir = "/home/philander/build/classes"/>/>
7. คำสั่งย้าย
ย้ายไฟล์หรือไดเรกทอรีดังต่อไปนี้:
●ย้ายไฟล์เดียว:
คัดลอกรหัสรหัสดังนี้:
<ย้าย file = "source" tofile = "destFile"/>/>
●ย้ายไฟล์เดียวไปยังไดเรกทอรีอื่น:
คัดลอกรหัสรหัสดังนี้:
<ย้าย file = "source" todir = "movedir"/>/>
●ย้ายไดเรกทอรีไปยังไดเรกทอรีอื่น:
คัดลอกรหัสรหัสดังนี้:
<ย้ายวันนี้ = "newdir">
<fileset dir = "olddir"/>
</move>
8. คำสั่ง echo
บทบาทของงานนี้คือการส่งออกข้อมูลตามระดับของบันทึกหรือการตรวจสอบ มันมีสี่แอตทริบิวต์: ข้อความ, ไฟล์, apend และระดับ
<echo message = "ant message" file = "/logs/ant.log" ผนวก = "true">
9. องค์ประกอบโหนดแท็กโหนด
แท็กนี้ใช้เพื่อสร้างไฟล์ JAR ซึ่งเป็นดังนี้
● DestFile ระบุชื่อของไฟล์ JAR
●พื้นฐานแสดงชื่อไฟล์ของที่เก็บถาวร
●รวมถึงโหมดไฟล์ที่ไม่เก็บถาวร
●การแลกเปลี่ยนแสดงถึงโหมดการยกเว้นไฟล์
●การบีบอัดบ่งชี้ว่ามีการบีบอัดหรือไม่
ตัวอย่าง:
คัดลอกรหัสรหัสดังนี้:
<jar destFile = "$ {webroot}/$ {ash_jar}" ระดับ = "9" การบีบอัด = "true" encoding = "UTF-8" basedir = "$ {dest}">
<Manifest>
<attribute name = "การใช้งาน-value =" เวอร์ชัน: 2.2 "/>
</manifest>
</ar>
MainFest ข้างต้นคือเนื้อหาของเนื้อหาไฟล์ใน Manifest.mf ในเนื้อสัตว์ในแพ็คเกจ Jar
การดำเนินการบรรจุภัณฑ์เดียวกันคือสงคราม TGZ และการบีบอัดการบีบอัด UZIP
คัดลอกรหัสรหัสดังนี้:
<!-สร้าง zip->
<zip baseness = "$ {achedir}/class" zipfile = "temp/output.zip"/>/>
<!-สร้าง tgz->
<gzip src = "classses/**/*. class" zipfile = "output.class.gz"/>
<!
<unzip src = "output.class.gz" dest = "extractdir"/>>>>> >>
<!-สร้างแพ็คเกจสงคราม->
<war destFile = "$ {webroot} /ash.war" basedir = "$ {basedir} /web" webxml = "$ {basedir} /web/web.xml" >>
<exclude name = "web-inf/classs/**"/>
<exclude name = "web-inf/lib/**"/>
<exclude name = "web-inf/work/_jsp/**"/>>
<lib dir = "$ {lib.dir}" รวม = "**/*. jar, **/*ดังนั้น **/*. dll">
<exclude name = "$ {webroot}/$ {helloWorld_jar}"/>
</lib>
<lib file = "$ {webroot}/$ {helloword_jar}"/> >>
<classes dir = "$ {dest}" รวม = "**/*. xml, **/*. properites, **/*. xsd"> </classses>
</ar>
10. องค์ประกอบโหนดแท็ก Javac
ฉลากใช้เพื่อรวบรวมไฟล์หนึ่งหรือกลุ่มของไฟล์ Java และแอตทริบิวต์ของมันมีดังนี้
● SRCDIR แสดงถึงไดเรกทอรีของโปรแกรมต้นทาง
● DestDir แสดงถึงไดเรกทอรีเอาต์พุตของไฟล์คลาส
●รวมถึงรูปแบบของไฟล์ที่รวบรวม
●ไม่รวมแสดงถึงรูปแบบของไฟล์ที่ยกเว้น
● ClassPath แสดงถึงเส้นทางคลาสที่ใช้
●การดีบักแสดงถึงข้อมูลการดีบัก
●เพิ่มประสิทธิภาพระบุว่าจะใช้การเพิ่มประสิทธิภาพหรือไม่
● verbose แสดงถึงข้อมูลเอาต์พุตโดยละเอียด
● FileOnerror กล่าวว่าหยุดโดยอัตโนมัติเมื่อพบข้อผิดพลาด
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<javac srcdir = "$ {src}" destdir = "$ {dest}"/>
<!- ตั้งค่าหน่วยความจำ JVM
<javac srcdir = "src" fork = "true"/>>
<javac srcdir = "src" fork = "true" executable = "d:/sdk141/bin/javac"
MemoryMaximumSize = "128m"/>
-
11. องค์ประกอบโหนดจาวาแท็ก
ฉลากนี้ใช้เพื่อเรียกใช้ไฟล์. class ที่รวบรวมและแอตทริบิวต์ของมันมีดังนี้
● className แสดงชื่อของการดำเนินการ
● jar หมายถึงชื่อของไฟล์ jar ที่มีคลาสนี้
● ClassPath แสดงเส้นทางคลาสที่ใช้
●ส้อมหมายถึงการรันคลาสนี้ในเครื่องเสมือนใหม่
● FailOnerror กล่าวว่าหยุดโดยอัตโนมัติเมื่อเกิดข้อผิดพลาด
●เอาต์พุตระบุไฟล์เอาต์พุต
● Apend ระบุว่าการเพิ่มหรือครอบคลุมไฟล์เริ่มต้น
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}"/>
12. องค์ประกอบพารามิเตอร์ข้อมูล ARG
โปรแกรมที่เรียกโดย ANT สามารถส่งผ่านพารามิเตอร์บรรทัดคำสั่งผ่านองค์ประกอบ <RG> เช่นงาน EXEC และ JAVA ที่สามารถยอมรับได้ด้วยองค์ประกอบที่ซ้อนกัน <RG> และสามารถระบุพารามิเตอร์ที่ระบุสำหรับกระบวนการที่เกี่ยวข้อง . นี่คือคุณลักษณะทั้งหมดของ <Arg>
●ค่าเป็นพารามิเตอร์คำสั่ง หากมีพื้นที่ในพารามิเตอร์ แต่ถ้าคุณต้องการใช้เป็นค่าเดียวให้ใช้แอตทริบิวต์นี้
●ไฟล์แสดงชื่อไฟล์ของพารามิเตอร์ ในการสร้างไฟล์ชื่อของไฟล์นี้สัมพันธ์กับไดเรกทอรีการทำงานปัจจุบัน
●บรรทัดระบุพารามิเตอร์หลายตัวของพื้นที่คั่นด้วยช่องว่าง
●แสดงเส้นทางซึ่งเป็นสตริงเหมือนเส้นทางที่ใช้เป็นตัวแปรบรรทัดคำสั่งเดียว
●เส้นทางอ้างอิง Pathref (ใช้เส้นทางนิยาม Node Element Node Path) ID
●คำนำหน้าคำนำหน้า●คำต่อท้ายคำต่อท้าย
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<arg value = "-la -a"/>
มันเป็นตัวแปรบรรทัดคำสั่งเดียวที่มีพื้นที่
คัดลอกรหัสรหัสดังนี้:
<arg line = "-la -a"/>
มันเป็นตัวแปรบรรทัดคำสั่งคั่นด้วยสองช่องว่าง
คัดลอกรหัสรหัสดังนี้:
<arg path = "/dir;/dir2:/dir3"/>
มันเป็นตัวแปรบรรทัดคำสั่งและค่าของมันคือ/dir;/dir2;/dir3 บนระบบ DOS;/dir:/dir2:/dir3 บนระบบ Unix
13. ประเภท Ericonment
คำสั่งภายนอกหรือโปรแกรมที่เรียกว่าไฟล์ที่เรียกโดย ANT และองค์ประกอบ <von> กำหนดตัวแปรสภาพแวดล้อมที่ควรส่งผ่านไปยังคำสั่งระบบที่กำลังดำเนินการ
●ไฟล์แสดงชื่อไฟล์ของค่าค่าโดยรอบ ชื่อของไฟล์นี้เป็นเส้นทางที่แน่นอนที่จะแปลง
●เส้นทางแสดงถึงเส้นทางของตัวแปรสภาพแวดล้อม มดจะแปลงเป็นข้อตกลงในท้องถิ่น
●ค่าหมายถึงตัวแปรโดยตรงของตัวแปรสภาพแวดล้อม
●คีย์หมายถึงชื่อตัวแปรสิ่งแวดล้อม
ให้ความสนใจกับเส้นทางไฟล์หรือค่าที่สามารถใช้ได้
14. รายการคอลเลกชันไฟล์ FileList
FileList เป็นประเภทข้อมูลที่รองรับรายการไฟล์การตั้งชื่อ นี่คือคุณลักษณะทั้งหมด
● DIR เป็นไดเรกทอรีสำหรับการคำนวณชื่อไฟล์สัมบูรณ์
●ไฟล์เป็นรายการไฟล์คั่นด้วยเครื่องหมายจุลภาค
● Refid เป็นการอ้างอิงถึง <filelist> ที่กำหนดไว้ในสถานที่หนึ่ง
โปรดทราบว่าไม่อนุญาตให้ใช้ DIR และไฟล์เว้นแต่ว่า DIR และไฟล์จะไม่ได้รับอนุญาตเว้นแต่จะระบุไว้ในกรณีนี้)
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<filelist id = "docfiles" dir = "$ {doc.src}" ไฟล์ = "foo.xml, bar.xml"/>
การรวบรวมไฟล์ $ {doc.src} /foo.xml และ $ {doc.src} /bar.xml
<filelist id = "docfiles" dir = "$ {doc.src}" ไฟล์ = "foo.xml bar.xml"/>
<fileList refid = "docfiles"/>>>
<filelist id = "docfiles" dir = "$ {doc.src}">
<file name = "foo.xml"/>>>
<file name = "bar.xml"/> >>
</filelist>
15. ประเภทไฟล์ชุดไฟล์
ประเภทข้อมูลชุดไฟล์กำหนดชุดของไฟล์และมักจะแสดงเป็นองค์ประกอบ <setect> อย่างไรก็ตามงานมดจำนวนมากได้สร้างชุดไฟล์ที่ซ่อนอยู่ซึ่งแสดงให้เห็นว่าพวกเขารองรับแอตทริบิวต์ชุดไฟล์ทั้งหมดและองค์ประกอบที่ซ้อนกัน ต่อไปนี้เป็นรายการของแอตทริบิวต์ของชุดไฟล์
● DIR แสดงถึงไดเรกทอรีพื้นฐานของชุดไฟล์
●หากค่าของกรณีของกรณีเป็นเท็จจากนั้นเมื่อตรงกับชื่อไฟล์ชุดไฟล์จะไม่แตกต่างจากกรณีและค่าเริ่มต้นของมันเป็นจริง
● DefaultExCludes ใช้เพื่อพิจารณาว่าจะใช้โหมดการยกเว้นเริ่มต้นและค่าเริ่มต้นเป็นจริง
●ไม่รวมเป็นรายการรูปแบบไฟล์ที่ต้องส่งด้วยการแยกเครื่องหมายจุลภาค
● ExcludesFile แสดงชื่อไฟล์ของไฟล์ที่มีโหมดการยกเว้นต่อบรรทัด
●รวมถึงคั่นด้วยเครื่องหมายจุลภาคและรายการรูปแบบไฟล์ที่ต้องรวมอยู่ด้วย
●รวมถึงไฟล์หมายความว่าแต่ละแถวมีชื่อไฟล์ที่มีโหมด
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<fileset id = "lib.runtime" dir = "$ {lib.path}/runtime">
<รวมชื่อ = "**/*. jar"/>
<รวมชื่อ = "**/*ดังนั้น"/>
<รวมชื่อ = "**/*. dll"/>
</fileset>
<fileset id = "lib.container" dir = "$ {lib.path}/container">
<รวมชื่อ = "**/*. jar"/>
</fileset>
<fileset id = "lib.extras" dir = "$ {lib.path}">
<รวมชื่อ = "ทดสอบ/**/*. jar"/>
</fileset>
16. ประเภท Patternset
ชุดไฟล์เป็นแพ็คเก็ตของไฟล์และรูปแบบถูกบรรจุในรูปแบบ
<matterset> รองรับ 4 แอตทริบิวต์: รวม, excludex, includexfile, excludesfile ซึ่งเหมือนกับชุดไฟล์
Patternset ยังอนุญาตให้องค์ประกอบที่ซ้อนกันดังต่อไปนี้: รวม, ยกเว้น, รวมไฟล์และ excludesfile
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<!-รายการขาวดำ->
<patternset id = "non.test.sources">
<รวมชื่อ = "**/*. java"/>
<!-ชื่อไฟล์มีการยกเว้นการทดสอบ->
<exclude name = "**/*test*"/>
</patternet>
<patternset id = "แหล่งที่มา">
<รวมชื่อ = "std/**/*. java"/>
<!-ตัดสินเงื่อนไขว่ามีการแนะนำให้แนะนำ->
<รวมชื่อ = "prof/**/*. java" if = "professional"/>/>
<exclude name = "**/*test*"/>
</patternet>
<!-ชุดไฟล์->
<patternset รวมถึง file = "some-file"/>>
<matterset>
<รวมชื่อ file = "ฟรี"/>>>
<patternset/>
<matterset>
<รวมชื่อ file = "ฟรี"/>>>
<รวมชื่อ file = "$ {Some-meher-file}" ถ้า = "บาง-ไม่มีค่าใช้จ่าย"/>>>>>
<patternset/>
17. ประเภทตัวกรอง
ตัวกรองกำหนดชุดตัวกรองที่แทนที่ข้อความของไฟล์เมื่อไฟล์ย้ายหรือ copys
คุณลักษณะหลักมีดังนี้:
● Begintoken ระบุเครื่องหมายที่ค้นหาโดยตัวกรองซ้อนซึ่งเป็นสตริงที่ระบุ
● Endtoken ระบุว่าเครื่องหมายที่ค้นหาโดยตัวกรองซ้อนกันเป็นสตริงที่ระบุจุดสิ้นสุด
● ID เป็นโลโก้เพียงอย่างเดียวของตัวกรอง
● Refid เป็นการอ้างอิงถึงตัวกรองที่ใดที่หนึ่งในไฟล์การก่อสร้าง
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<!-@date@ถูกแทนที่ด้วย@date@ถึงวันที่ปัจจุบันของวันนี้ในเนื้อหาไฟล์ file.txt ในไฟล์เป้าหมาย
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<filterset>
<filter token = "date" value = "$ {วันนี้}"/>>
</filterset>
</copy>
<!-รูปแบบตัวแปรที่กำหนดเอง->
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<!-เริ่มค้นหาจากตำแหน่ง%ในเวอร์ชัน txt ไปยังจุดสิ้นสุดของตำแหน่ง*และแทนที่@date@ในเนื้อหาทดแทนเป็นค่าของวันที่ปัจจุบันของวันนี้->
<filterset Begintoken = "%" endtoken = "*">
<filter token = "date" value = "$ {วันนี้}"/>>
</filterset>
</copy>
<!-ใช้ไฟล์นิยามตัวกรองภายนอก->
<คัดลอกวันนี้ = "$ {dist.dir}/docs">
<fileset dir = "$ {build.dir}/docs">
<รวมชื่อ = "**/*. html">
</fileset>
<filterset Begintoken = "%" endtoken = "*">
<!-คุณลักษณะและค่าของไฟล์ได้รับการแนะนำจากภายนอกและคุณลักษณะและค่าของการมาถึง
<filtersfile file = "$ {user.dir} /dist.properties" /> >>
</filterset>
</copy>
<!-ใช้วิธีการอ้างอิงใช้ชุดตัวกรองซ้ำ ๆ ซ้ำ ๆ->
<filterset id = "myFilterset" begintoken = "%" endtoken = "*">
<filter token = "date" value = "$ {วันนี้}"/>>
</filterset>
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<filterset refid = "myFilterset"/>
</copy>
18. ประเภทเส้นทาง
องค์ประกอบพา ธ ใช้เพื่อเป็นตัวแทนของชั้นเรียน แต่ยังสามารถใช้เพื่อเป็นตัวแทนของเส้นทางอื่น ๆ เมื่อใช้เป็นคุณลักษณะบางอย่างคะแนนหรือโคลอนต่าง ๆ ในพระคัมภีร์จะถูกแยกออกจากกัน เมื่อสร้างตัวคั่นนี้จะแทนที่ตัวคั่นพา ธ ทั้งหมดบนแพลตฟอร์มปัจจุบันและแอตทริบิวต์ของมันมีดังนี้
●ตำแหน่งแสดงถึงไฟล์หรือไดเรกทอรี มดขยายสิ่งนี้เป็นเส้นทางที่สมบูรณ์ภายใน
● Refid เป็นการอ้างอิงถึงเส้นทางที่กำหนดไว้ในไฟล์สร้างสรรค์ปัจจุบัน
●พา ธ หมายถึงรายการไฟล์หรือพา ธ
ตัวอย่างโค้ดคัดลอกรหัสมีดังนี้:
<path id = "buildpath">
<fileset refid = "lib.runtime"/>
<fileset refid = "lib.container"/>
<fileset refid = "lib.extras"/>
</path>
<path id = "src.paths">
<fileset id = "srcs" dir = ".">
<รวมชื่อ = "src/**/*. java"/>
</fileset>
</path>
8. รหัสรหัสของการรวบรวมการบรรจุและการทำงานด้านวิศวกรรมมีดังนี้: ดังนี้:
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"
<!-ชื่อคือชื่อของโครงการปัจจุบัน
<ชื่อโครงการ = "helloWorld" default = "run" basedir = ".">.
<!-คุณสมบัติคล้ายกับตัวแปรง่าย ๆ ในโปรแกรม->
<propoperty name = "src" value = "src"/>
<property name = "dest" value = "class"/>>>
<property name = "hello_jar" value = "helloWorld.jar"/>>
-
Target เป็นเหตุการณ์เหตุการณ์งานชื่อคือชื่อของสิ่งปัจจุบันขึ้นอยู่กับสิ่งสุดท้ายหรือหลายสิ่ง
-
<!-การเริ่มต้น->
<target name = "init">
<!--คลาสไดเรกทอรี->
<mkdir dir = "$ {dest}"/>
<mkdir dir = "temp"/>>>
<mkdir dir = "temp2"/>>>
</source>
<!-การรวบรวม->
<target name = "Compile" ขึ้นอยู่กับ = "init">
<javac srcdir = "$ {src}" destdir = "$ {dest}"/>
<!- ตั้งค่าหน่วยความจำ JVM
<javac srcdir = "src" fork = "true"/>>
<javac srcdir = "src" fork = "true" executable = "d:/sdk141/bin/javac"
MemoryMaximumSize = "128m"/>
-
</source>
<!-<< 建->
<target name = "build" ขึ้นอยู่กับ = "Compile">
-
<jar jarfile = "$ {hello_jar}" basedir = "$ {dest}"/>
สร้างชื่อสำหรับไฟล์ package.jar
<jar destFile = "package.jar" basedir = "คลาส"/>>
-
<jar destFile = "$ {hello_jar}" basedir = "classses">
<!-เพิ่มเนื้อหาลงในไฟล์หลักในแพ็คเกจ JAR->
<Manifest>
<attribute name = "built-by" value = "$ {user.name}"/>> >>
<attribute name = "main-class" value = "package.main"/>/>
</manifest>
</ar>
<!-คัดลอกไฟล์ jar todir = "คัดลอกไปยังไดเรกทอรี"->
<copy file = "$ {hello_jar}" tofile = "$ {dest} /temp.jar" /> >>
<คัดลอก todir = "ทดสอบ">
<!-defaultExCludes = ""->
<fileset dir = "src">
<รวมชื่อ = "**/*. java"/>
</fileset>
</copy>
<คัดลอก todir = "temp2">
<fileset dir = "src">
<และ>
<มี text = "main"/>
<size value = "1" เมื่อ = "เพิ่มเติม"/>
</และ>
</fileset>
</copy>
<!-ไฟล์ jar มือถือ->
<move file = "$ {dest} /temp.jar" tofile = "temp/move-temp.jar"/> >>
<!-สร้าง zip->
<zip baseness = "$ {achedir}/class" zipfile = "temp/output.zip"/>/>
<!-สร้าง tgz->
<gzip src = "classses/**/*. class" zipfile = "output.class.gz"/>
<!
<unzip src = "output.class.gz" dest = "extractdir"/>>>>> >>
<! --- แทนที่เนื้อหาเก่าในเนื้อหาของอินพุต
<แทนที่ file = "input.txt" token = "old" value = "new"/>>>>
-
</source>
<!
<target name = "run" ขึ้นอยู่กับ = "build">
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}"/>
</source>
<!-ชัดเจน->
<target name = "Clear">
<!-ลบไฟล์ที่สร้างขึ้น->
<delete dir = "$ {dest}"/>
<delete file = "$ {hello_jar}"/>
</source>
<tstamp>
<format property = "Offset_time"
รูปแบบ = "HH: MM: SS"
Offset = "10" unit = "นาที"/>>>
</tstamp>
<!-รีสตาร์ท->
<target name = "raun" ขึ้นอยู่กับ = "สะอาดวิ่ง">
<echo message = "### $ {tstamp}#$ {วันนี้}#$ {dstamp} ###"/>
<ชอบ target = "สะอาด"/>
<ชอบ target = "run"/>
</source>
</project>
มีหลายสิ่งหลายอย่างที่จะพูด มดไม่ใช่เรื่องยาก ภายใต้สถานการณ์บางอย่างประสิทธิภาพและการทำงานซ้ำ ๆ ได้รับการปรับปรุง