2009-10-20 32 views
36

Có thể cho biết thư mục nào người dùng chạy Ant không?Tìm thư mục làm việc từ Ant

Ví dụ: tôi có thể chỉ muốn chạy các kiểm tra đơn vị trong thư mục làm việc hiện tại, thay vì tất cả các kiểm tra cho toàn bộ dự án.

Tôi cố gắng này:

<property environment="env" /> 
<echo>${env.CWD}</echo> 

nhưng điều đó không làm việc.

+1

CWD không phải là một phần của Windows điển hình tập hợp các biến môi trường. Làm thế nào bạn thiết lập nó? Câu trả lời @Asaph được cung cấp là cách dễ dàng hơn. – DaveParillo

Trả lời

57

Toàn bộ đối tượng Thuộc tính được trả về bởi System.getProperties() được Ant tiếp xúc. Hãy thử điều này:

<echo>${user.dir}</echo> 
39

${basedir} cũng có thể hữu ích.

Trong Netbeans dưới Linux, ${user.dir} dường như luôn bằng ${user.home}, nhưng ${basedir} cung cấp cho tôi thư mục thực tế nơi kiến ​​được chạy từ (vì vậy nó mang lại cho tôi thư mục dự án).

+7

Theo mặc định, basedir là thư mục cha của buildfile. Điều này không nhất thiết phải giống như thư mục * làm việc. * –

+0

Đó thực sự chính xác là vấn đề của tôi. Tôi không thể tìm ra cách để có được thư mục làm việc của tôi để được một số thư mục khác khi tôi gọi kịch bản kiến ​​của tôi từ một kịch bản kiến ​​khác nhau trong một thư mục khác. Tôi thấy user.dir là thư mục của kịch bản lệnh gọi ant, và basedir là thư mục mà tôi muốn thực thi kịch bản kiến ​​của mình từ đó. Tôi gọi kịch bản kiến ​​của tôi bằng cách sử dụng '', nhưng điều đó chỉ thay đổi base và không phải là thư mục làm việc hiện tại. – searchengine27

2

Trừ khi bạn đang sử dụng Windows, điều này sẽ cung cấp cho bạn các thư mục làm việc hiện tại:

<exec executable="sh" outputproperty="my.cwd"><arg line="-c pwd"/></exec> 
+4

Lệnh hoạt động, nhưng chống lại tinh thần Ant "viết một lần, xây dựng ở khắp mọi nơi" vì nó không chạy trong Windows. –

Các vấn đề liên quan