2013-05-24 32 views
20

Tôi đang cố gắng sử dụng các tác vụ gradle như là loại "hệ điều hành bất khả tri shell-script". Tôi không có vấn đề gì trong việc viết logic của tệp xây dựng, nhưng tôi muốn có thể chạy nó từ bất kỳ thư mục nào.Gradle: lấy thư mục mà từ đó "gradle" được thực hiện

nỗ lực đầu tiên của tôi là để đặt một thư mục với tập tin build.gradle của tôi trên con đường, và sau đó cố gắng thực hiện:

gradle myMask 

từ một thư mục mà không chứa build.gradle - nhưng điều đó không 't làm việc.

nỗ lực tiếp theo của tôi là:

gradle -b /folder/containing/build.gradle myTask 

Nhưng điều đó chỉ làm việc với một số mở rộng. Trong nhiệm vụ của tôi, tôi muốn tìm tất cả các tệp trong CURRENT DIRECTORY. hiện tại - có nghĩa là không phải là người có chứa build.gradle nhưng một trong những từ bên trong mà tôi đang thực hiện "gradle ....."

Tôi đã thử:

file(".") 

file("$projectDir") 

và một số chi tiết khác, nhưng tất cả chúng trỏ đến thư mục chứa tập lệnh xây dựng, không có từ mà tôi đang thực thi nó.

Bất kỳ ý tưởng nào tôi có thể làm điều đó?

+1

bạn đã thêm System.getProperty ("user.dir") ??? – Ahmed

Trả lời

42

và người chiến thắng là:

System.getProperty("user.dir") 
11

tập tin ("") luôn trả về thư mục dự án hiện tại mà isnt nhất thiết và không phải là thư mục làm việc. Để tham khảo thư mục hoạt động, bạn có thể sử dụng:

new File(".").absolutePath 

hy vọng sẽ hữu ích!

René

+1

Không, điều đó không hiệu quả. điều này sẽ trả về thư mục chứa tệp build.gradle. Và đây chính xác là những gì tôi KHÔNG MUỐN. –

+1

bạn đã thử đoạn mã này chưa? Tôi chắc chắn nó sẽ trả về workDir hiện tại vì đó là hành vi java mặc định cho File mới ("."). –

+1

Thực ra đây là những gì tôi đang tìm kiếm, mặc dù nó có thể không trả lời được câu hỏi. Cảm ơn! – milosmns

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