Làm cách nào tôi có thể nhận được danh sách các mục tiêu xây dựng trong Ant?


191

Codebase của tôi có một build.propertiestập tin dài được viết bởi người khác. Tôi muốn xem các mục tiêu được xây dựng có sẵn mà không phải tìm kiếm thông qua tệp theo cách thủ công. Liệu con kiến ​​có một lệnh cho điều này - một cái gì đó giống như ant show-targets- sẽ làm cho nó liệt kê tất cả các mục tiêu trong tệp xây dựng?

Câu trả lời:


263

Các -phoặc -projecthelptùy chọn thực hiện chính xác này, vì vậy bạn chỉ có thể thử:

ant -p build.xml

Từ tài liệu dòng lệnh của ant :

Các -projecthelptùy chọn in ra một danh sách các mục tiêu xây dựng hồ sơ của. Các mục tiêu bao gồm một descriptionthuộc tính được liệt kê là "Các mục tiêu chính", các mục tiêu không có descriptionđược liệt kê là "Các mục tiêu khác", sau đó mục tiêu "Mặc định" được liệt kê ("Các mục tiêu khác" chỉ được hiển thị nếu không có mục tiêu chính hoặc nếu Ant được gọi trong -verbosehoặc -debugchế độ).


35
Để làm điều này thành mặc định khi chỉ cần gọi ant, hãy tạo một mục tiêu thích <target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>và thực hiện "trợ giúp" mục tiêu mặc định trong dự án của bạn.
sschuberth

18
Tôi nghĩ rằng đáng chú ý là ant -psẽ chỉ hiển thị các mục tiêu có mô tả. Để hiển thị mọi mục tiêu được liên kết với một build.xmltệp, bạn cần chạy ant -p -vNgoài ra, ant -p build.xmllà dự phòng. ant -psẽ làm điều tương tự, và nếu bạn không có trong build.xmlthư mục ant -p -buildfile path/to/build.xml, dù sao bạn cũng sẽ cần sử dụng .
Andrew

1
các target name="help"điều hoạt động tốt, nhưng không phải khi chạy trong môi trường Eclipse Ant (nó chỉ bị treo, nhưng -diagnosticshoặc những người khác là ok với nó) :-( (không ngã ba vm, Kepler với ant 1.8.4 (2014/05/22) và cũng đã cố gắng với ant 1.9.4 (2014-04-29)) (chỉ khi bạn tự hỏi ... Tôi đang tạo một env độc lập mà tôi muốn thử nghiệm trong Eclipse ... tất nhiên tôi đã có Ant View của tôi đó)
Andreas Dietrich

34

Để có được tất cả các mục tiêu trong tệp xây dựng

ant -p -verbose


1
chúng ta cần sử dụng -p kết hợp với -v Nếu chúng ta yêu cầu tất cả các mục tiêu (bởi tất cả các mục tiêu tôi có nghĩa là các mục tiêu không có mô tả trong đó). nếu Chỉ có các mục tiêu chính là bắt buộc (bởi các mục tiêu chính tôi có nghĩa là các mục tiêu có mô tả trong đó) chỉ sử dụng -p để thực hiện thủ thuật.
Di chúc

2
Tôi không thể thấy các mục tiêu mà tôi cần chỉ với -p, điều này hoạt động hoàn hảo.
JacopKane

15

Các -phoặc -projecthelptùy chọn thực hiện chính xác này, vì vậy bạn có thể làm:

ant -p build.xml

Bạn có thể tạo một mục tiêu để gọi điều này như:

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

mà sau đó bạn có thể đặt làm mặc định, vì vậy chỉ cần gõ ant sẽ liệt kê các mục tiêu có sẵn.

(Kết hợp câu trả lời của @Grodriguez và nhận xét của @ sschuberth - Tôi nghĩ rằng nó đáng để tự trả lời)


5
đề nghị nhỏ. đặt mục tiêu "trợ giúp" làm mặc định. Do đó, việc chạy "kiến" sẽ gọi mục tiêu "trợ giúp" sẽ in tất cả các mục tiêu khả dụng.
dùng1697575

0

Bạn có thể kiểm tra danh sách mục tiêu và mục tiêu mặc định trong build.xml bằng lệnh sau

ant -p build.xml

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.