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.