ฉันจะรับรายการเป้าหมายการสร้างใน Ant ได้อย่างไร


193

codebase ของฉันมีbuild.propertiesไฟล์ยาว ๆเขียนโดยบุคคลอื่น ฉันต้องการดูเป้าหมายที่มีอยู่โดยไม่ต้องค้นหาไฟล์ด้วยตนเอง มดมีคำสั่งสำหรับสิ่งนี้หรือไม่ant show-targets- ซึ่งจะทำให้รายการเป้าหมายทั้งหมดในไฟล์บิลด์หรือไม่

คำตอบ:


265

-pหรือ-projecthelpตัวเลือกที่ไม่ตรงนี้ดังนั้นคุณก็สามารถลอง:

ant -p build.xml

จากบรรทัดคำสั่งมดเอกสาร :

-projecthelpตัวเลือกพิมพ์ออกรายการของเป้าหมายการสร้างแฟ้ม เป้าหมายที่มีdescriptionแอตทริบิวต์จะแสดงรายการเป็น "เป้าหมายหลัก", รายการที่ไม่มีdescriptionรายการจะแสดงเป็น "เป้าหมายอื่น" จากนั้นเป้าหมาย "เริ่มต้น" จะแสดงรายการ ("เป้าหมายอื่น ๆ " จะปรากฏต่อเมื่อไม่มีเป้าหมายหลักหรือหาก Ant ถูกเรียกใช้ใน-verboseหรือ-debugโหมด)


35
ในการทำให้สิ่งนี้เป็นค่าเริ่มต้นเมื่อเรียกใช้antให้สร้างเป้าหมายที่ชอบ<target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>และทำให้ "ช่วย" เป้าหมายเริ่มต้นในโครงการของคุณ
sschuberth

18
ฉันคิดว่ามันน่าสังเกตว่าant -pจะแสดงเฉพาะเป้าหมายที่มีคำอธิบายเท่านั้น เพื่อแสดงให้เห็นเป้าหมายทุกเกี่ยวข้องกับbuild.xmlไฟล์ที่คุณต้องทำงานant -p -vนอกจากนี้ant -p build.xmlจะซ้ำซ้อน ant -pจะทำในสิ่งเดียวกันและถ้าคุณไม่ได้อยู่ในbuild.xmlไดเรกทอรีที่คุณจะต้องใช้ant -p -buildfile path/to/build.xmlอยู่แล้ว
แอนดรู

1
target name="help"สิ่งที่ทำงานได้ดี แต่ไม่เมื่อทำงานภายในสภาพแวดล้อม Eclipse มด (มันก็แฮงค์ แต่-diagnosticsหรือคนอื่น ๆ จะตกลงกับมัน) :-( (ไม่ส้อม VM เคปเลอร์กับมด 1.8.4 (2014/05/22) และยังพยายาม with ant 1.9.4 (2014-04-29)) (ถ้าคุณถามตัวเอง ... ฉันกำลังสร้างมด env แบบสแตนด์อโลนซึ่งฉันต้องการทดสอบภายใน Eclipse ... แน่นอนว่าฉันมีมุมมอง Ant )
Andreas Dietrich

34

เพื่อรับเป้าหมายทั้งหมดในไฟล์บิลด์

ant -p -verbose


1
เราจำเป็นต้องใช้ -p cominded กับ -v หากเราต้องการเป้าหมายทั้งหมด (โดยเป้าหมายทั้งหมดฉันหมายถึงเป้าหมายที่ไม่มีคำอธิบายในนั้นเช่นกัน) ถ้าต้องการเป้าหมายหลักเท่านั้น (ตามเป้าหมายหลัก i หมายถึงเป้าหมายที่มีคำอธิบาย) โดยใช้ -p เพียงอย่างเดียว
Wills

2
ฉันไม่เห็นเป้าหมายที่ฉันต้องการด้วย -p เท่านั้นมันทำงานได้อย่างสมบูรณ์แบบ
JacopKane

15

-pหรือ-projecthelpตัวเลือกที่ไม่ตรงนี้เพื่อให้คุณสามารถทำได้:

ant -p build.xml

คุณสามารถสร้างเป้าหมายเพื่อเรียกสิ่งนี้:

<target name="help">
    <java classname="org.apache.tools.ant.Main">
        <arg value="-projecthelp" />
        <arg value="-buildfile" />
        <arg value="${ant.file}" />
    </java>
</target>

ซึ่งคุณสามารถตั้งค่าให้เป็นค่าเริ่มต้นดังนั้นเพียงแค่พิมพ์มดจะแสดงรายการเป้าหมายที่มีอยู่

(การรวมคำตอบของ @Grodriguez และความคิดเห็นของ @ sschuberth - ฉันคิดว่ามันคุ้มค่ากับคำตอบของตัวเอง)


5
ข้อเสนอแนะเล็ก ๆ ทำให้เป้าหมาย "ช่วย" เป็นค่าเริ่มต้น ดังนั้นการเรียกใช้ "ant" จะเรียกใช้เป้าหมาย "ความช่วยเหลือ" ที่จะพิมพ์เป้าหมายที่มีอยู่ทั้งหมด
user1697575

0

คุณสามารถตรวจสอบรายการเป้าหมายและเป้าหมายเริ่มต้นใน build.xml โดยคำสั่งต่อไปนี้

ant -p built.xml

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.