Android Studio의 IML 파일이란 무엇입니까?


186

Android Studio 프로젝트의 IML 파일이란 무엇입니까? 모듈의 구성 파일이라는 것을 읽었습니다. 작동 방식을 이해하지 못하고 gradle 스크립트를 사용하여 프로젝트에 추가하는 외부 모듈과 통합 할 수는 없습니다.

또한 AS가 대부분 생성하므로 프로젝트 동작을 제어 할 수 없습니다. Eclipse 및 AS와 같은 다른 IDE에서 작동하는 팀이있는 경우 IDE와 무관하게 프로젝트를 설정할 수 있습니까?

이 시스템의 작동 방식을 완전히 이해하지 못했습니다.

답변:


172

Android Studio 프로젝트의 IML 파일이란 무엇입니까?

Google 검색이 iml file켜집니다.

IML은 IntelliJ IDEA (Java 응용 프로그램 개발에 사용되는 IDE)에서 만든 모듈 파일입니다. Java, 플러그인, Android 또는 Maven 구성 요소 일 수있는 개발 모듈에 대한 정보를 저장합니다. 모듈 경로, 종속성 및 기타 설정을 저장합니다.

( 이 페이지에서 )

gradle 스크립트를 사용하여 프로젝트에 추가하는 외부 모듈과 통합하지 않는 이유는 무엇입니까?

"그라들 스크립트를 사용하여 외부 모듈과 통합"또는 자체 모듈을 사용합니다.

그러나 Gradle은 IntelliJ IDEA의 기본 프로젝트 모델이 아니며 .iml파일과 .idea/디렉토리 의 메타 데이터로 분리되어 있습니다 . Android Studio에서는 Gradle 빌드 스크립트에서 그 내용이 크게 생성되므로, 같은 파일을 변경할 때 때때로 "Gradle 파일과 프로젝트 동기화"메시지가 표시됩니다 build.gradle. 또한 .iml파일 .idea/내용을 재생성하기 때문에 파일을 넣거나 버전을 제어 하지 않아도 됩니다.

Eclipse 및 AS와 같은 다른 IDE에서 작업하는 팀이 있다면 프로젝트 IDE를 불가지론 적으로 만드는 방법은 무엇입니까?

대체로 할 수 없습니다.

Eclipse 스타일 디렉토리 구조를 사용하는 Android 프로젝트 (예 : 프로젝트 루트 디렉토리의 자원 및 매니페스트)를 사용할 수 있습니다. Gradle을 통해 build.gradle해당 구조에서 파일을 찾는 방법을 가르 칠 수 있습니다 . 그러나 다른 메타 데이터 ( compileSdkVersion, 종속성 등)는 거의 쉽게 복제되지 않습니다.

다른 대안은 다음과 같습니다.

  • Eclipse와 Android Studio 모두에 동일하게 통합되거나 관점에 따라 다르지 않은 Maven과 같은 다른 빌드 시스템으로 모든 사람을 이동하십시오.

  • Andmore 가 곧 이륙하기를 희망 하므로 Gradle 빌드 스크립트에서 Android 프로젝트를 빌드 할 수있는 Eclipse IDE를 가질 수 있습니다.

  • 모든 사람이 하나의 IDE를 사용하도록하십시오


1
iml 파일을 제거하면 어떻게됩니까? 괜찮을까요?
E-Place

1
@ E-Place : Android Studio를 사용하는 경우 일반적으로 프로젝트를 가져 와서 Android Studio에서 다시 생성해야합니다. 안드로이드 스튜디오는 그것 없이는 작동 할 수 없습니다.
CommonsWare

어떻게 iml을 만들 수 있습니까? 저는 4 개 이상의 iml 파일을 가지고 있습니다
E-Place

@ E-Place : 일반적으로 .iml프로젝트 루트에는 하나의 .iml파일과 각 모듈 디렉토리에는 하나의 파일 (예 :)이 app/있습니다. 도구> Android> Gradle 파일과 프로젝트 동기화를 시도 할 수 있습니다. 그렇지 않으면 프로젝트를 다시 가져와야 할 수도 있습니다. 이 영역에 대한 추가 문제가있는 경우 새로운 스택 오버플로 질문을하십시오.
CommonsWare

1
파일을 사용 하거나 유사한 파일을 배포 / 동기화한다고 가정 할 때 최소한 파일 및 디렉토리 와 관련하여 모두 동일한 IDE를 사용하도록 있습니다 . 의 경우 아래 @Pavel Synek이 제안한 것처럼 동기화하지 않으려는 파일 이 파일 에서 참조되는지 확인하십시오 . 당신은 로컬로 복원 / 저장소와 중생에서 삭제해야합니다,하지만 그건 그냥 , 하고 . *.iml.idea/gitgit.gitignoremvgit commitmv
Sarah Messer

76

추가 .idea하고 *.iml.gitignore프로젝트를 가져오고 컴파일하기 위해 해당 파일이 필요하지 않습니다.


16
좋아, 그러나 그들은 무엇인가? 어떻게 작동하고 어떤 영향을 미칩니 까? 다른 프로젝트의 소스를 찾고 있는데 iml 파일에 예를 들어 gigya 용으로 만 존재하는 모듈이 있으며 매니페스트를 제외한 다른 곳에서는 볼 수 없습니다. 그렇다면 해당 모듈이 프로젝트에 있습니까?
shadox

3
.idea전체적으로 무시해서는 안됩니다. 보푸라기 규칙 및 사용자 정의 사전과 같은 여러 파일이 포함되어있어 팀이 버전 제어에 절대적으로 체크인하기를 원합니다.
M-Pixel

2
이것은 질문에 대답조차하지 않습니다.
데이지

12

그것들은 모듈 정보와 메타 데이터를 담고있는 프로젝트 파일입니다.

그냥 추가 *.iml.gitignore.

Android Studio에서 : CTRL+ F9를 눌러 프로젝트를 다시 빌드하십시오. 누락 된 *.iml파일이 생성됩니다.


2

이러한 파일은 Android Studio 편집기에서 작성하고 사용합니다.

버전 관리를 위해 해당 파일을 체크인 할 필요는 없습니다.

Git은 파일 및 디렉토리 목록이 포함 된 .gitignore 파일을 사용하여 체크인 할 필요가없는 파일 및 디렉토리 목록을 알고 있습니다.

Android Studio는 버전 제어에 체크인 할 필요가없는 모든 파일 및 디렉토리를 나열하는 .gitingnore 파일을 자동으로 생성합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.