Các tập tin iml trong Android Studio là gì?


185

Các tập tin iml trong dự án Android Studio là gì? Tôi đọc rằng nó là tập tin cấu hình cho các mô-đun. Tôi không hiểu cách thức hoạt động của nó và tôi không thể sử dụng các tập lệnh phân lớp để tích hợp với các mô-đun bên ngoài mà bạn thêm vào dự án của mình.

Ngoài ra, hầu hết thời gian AS tạo ra chúng, vì vậy tôi không thể kiểm soát hành vi dự án. Nếu tôi có một nhóm làm việc trong các IDE khác nhau như Eclipse và AS, thì có thể thiết lập dự án của tôi để IDE không biết?

Tôi không hiểu đầy đủ về cách thức hoạt động của hệ thống này.

Câu trả lời:


171

Các tập tin iml trong dự án Android Studio là gì?

Một tìm kiếm Google iml filebật lên:

IML là một tệp mô-đun được tạo bởi IntelliJ IDEA, một IDE được sử dụng để phát triển các ứng dụng Java. Nó lưu trữ thông tin về một mô-đun phát triển, có thể là thành phần Java, Plugin, Android hoặc Maven; lưu các đường dẫn mô-đun, phụ thuộc và các cài đặt khác.

(từ trang này )

tại sao không sử dụng tập lệnh gradle để tích hợp với các mô-đun bên ngoài mà bạn thêm vào dự án của mình.

Bạn thực hiện "sử dụng tập lệnh phân lớp để tích hợp với các mô-đun bên ngoài" hoặc các mô-đun của riêng bạn.

Tuy nhiên, Gradle không phải là mô hình dự án gốc của IntelliJ IDEA - riêng biệt, được giữ trong .imlcác tệp và siêu dữ liệu trong các .idea/thư mục. Trong Android Studio, nội dung đó phần lớn được tạo ra từ các tập lệnh xây dựng Gradle, đó là lý do tại sao đôi khi bạn được nhắc "đồng bộ hóa dự án với các tập tin Gradle" khi bạn thay đổi các tập tin như thế nào build.gradle. Đây cũng là lý do tại sao bạn không bận tâm đến việc đặt .imlcác tệp hoặc .idea/trong kiểm soát phiên bản, vì nội dung của chúng sẽ được tạo lại.

Nếu tôi có một nhóm làm việc trong các IDE khác nhau như Eclipse và NHƯ làm thế nào để biến IDE không theo dự án?

Ở một mức độ lớn, bạn không thể.

Bạn có thể có một dự án Android sử dụng cấu trúc thư mục theo kiểu Eclipse (ví dụ: tài nguyên và tệp kê khai trong thư mục gốc của dự án). Bạn có thể dạy Gradle, thông qua build.gradle, cách tìm các tệp trong cấu trúc đó. Tuy nhiên, siêu dữ liệu khác ( compileSdkVersion, phụ thuộc, v.v.) sẽ không dễ dàng được sao chép.

Các lựa chọn thay thế khác bao gồm:

  • Chuyển tất cả mọi người sang một hệ thống xây dựng khác, như Maven, được tích hợp như nhau (hoặc không, tùy thuộc vào góc nhìn của bạn) vào cả Eclipse và Android Studio

  • Hy vọng rằng Andmore sẽ sớm cất cánh, để có lẽ bạn có thể có một IDE Eclipse có thể xây dựng các dự án Android từ các tập lệnh xây dựng Gradle

  • Mọi người có dùng một IDE không


1
Điều gì xảy ra nếu tôi loại bỏ tập tin iml? nó sẽ ổn chứ
E-Place

1
@ E-Place: Nếu bạn đang sử dụng Android Studio, bạn sẽ cần phải tạo lại Android Studio, thông thường bằng cách nhập dự án. Android Studio không thể hoạt động mà không có nó.
CommonsWare

Làm thế nào iml có thể tạo ra? tôi có nhiều hơn 4 tập tin iml
E-Place

@ E-Place: Thông thường, bạn sẽ có một .imltệp trong thư mục gốc của dự án, cộng với một .imltệp trong mỗi thư mục mô-đun (ví dụ app/:). Bạn có thể thử Công cụ> Android> Dự án đồng bộ hóa với các tệp Gradle. Nếu không, bạn có thể cần phải nhập lại dự án. Nếu bạn có thêm mối quan tâm trong lĩnh vực này, vui lòng đặt câu hỏi Stack Overflow mới.
CommonsWare

1
Bạn có thể yêu cầu mọi người sử dụng cùng một IDE, ít nhất là đối với các *.imltệp và .idea/thư mục, giả sử bạn đang phân phối / đồng bộ hóa các tệp bằng cách sử dụng githoặc tương tự. Đối với git, chỉ cần đảm bảo các tệp bạn không muốn đồng bộ hóa được tham chiếu trong .gitignoretệp, như @Pavel Synek gợi ý, bên dưới. Bạn sẽ cần phải xóa chúng khỏi kho lưu trữ và tái tạo / khôi phục chúng tại địa phương, nhưng đó chỉ là mv, git commit, và mv.
Sarah Messer

76

Thêm .idea*.imlvào .gitignore, bạn không cần các tệp đó để nhập và biên dịch dự án thành công.


16
Ok, nhưng chúng là gì? Làm thế nào họ làm việc và những tác động nào họ có? Tôi đang xem qua nguồn của một dự án khác và có một mô-đun trong tệp iml chỉ có ở đó, ví dụ như gigya và tôi không thấy nó ở bất kỳ nơi nào khác ngoại trừ bảng kê khai. Vì vậy, mô-đun đó có trong dự án hay không?
shadox

3
.ideanhư một toàn thể không bao giờ được bỏ qua. Nó chứa một số tệp, như quy tắc lint và từ điển tùy chỉnh, mà một nhóm hoàn toàn muốn kiểm tra phiên bản kiểm soát.
M-Pixel

2
Điều này thậm chí không cố gắng trả lời câu hỏi.
cúc

12

Chúng là các tệp dự án, chứa thông tin mô-đun và dữ liệu meta.

Chỉ cần thêm *.imlvào .gitignore.

Trong Android Studio: Nhấn CTRL+ F9để xây dựng lại dự án của bạn. Các *.imltập tin bị thiếu sẽ được tạo ra.


2

Những tệp này được tạo và sử dụng bởi trình chỉnh sửa Android Studio.

Bạn không cần kiểm tra các tệp đó để kiểm soát phiên bản.

Git sử dụng tệp .gitignore, chứa danh sách các tệp và thư mục, để biết danh sách các tệp và thư mục không cần phải kiểm tra.

Android studio tự động tạo các tệp .gitingnore liệt kê tất cả các tệp và thư mục không cần kiểm tra trong bất kỳ điều khiển phiên bản nào.

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.