android - example - modules xml gitignore




.idea/cache/build_file_checksums.ser를.gitignore에 추가해야합니까? (2)

Android Studio 를 3.0.1에서 3.1로 업데이트하여 기존 프로젝트에 익숙하지 않은 파일을 발견했습니다.

    .idea/caches/build_file_checksums.ser

Android Gradle 플러그인을 최신 3.1.0으로 업데이트했는지 여부에 달려 있지 않습니다. Android Studio 3.1에서 기존 프로젝트를 열면 다음과 같이 이전 3.0.1 플러그인을 사용하도록 프로젝트를 유지하더라도 build_file_checksums.ser 파일이 자동으로 만들어졌습니다.

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }

또한 Android Studio 3.1에서 새 프로젝트를 만들고 build_file_checksums.ser 파일이 처음부터 만들어 build_file_checksums.ser 을 확인했습니다.

글을 쓰는 시점에서 이것에 대한 공식적인 문서가없는 것 같습니다. 누구든지 찾을 수 있으면 감사하겠습니다.

편집 됨 :

Samuel 이 몇 가지 시스템 경로가 포함되어있는 것으로 지적하면서 jdeserialize-1.2 내용을 inspected 했습니다.

$ java -jar ~/Downloads/jdeserialize-1.2.jar .idea/caches/build_file_checksums.ser 
read: com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;  
//// BEGIN stream content output
com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;  
//// END stream content output

//// BEGIN class declarations (excluding array classes)
class java.util.HashMap implements java.io.Serializable {
    float loadFactor;
    int threshold;
}

class com.android.tools.idea.gradle.project.ProjectBuildFileChecksums implements java.io.Serializable {
    long myLastGradleSyncTimestamp;
    java.util.Map myFileChecksums;
}

//// END class declarations

//// BEGIN instance dump
[instance 0x7e0004: 0x7e0003/java.util.HashMap
  object annotations:
    java.util.HashMap
        [blockdata 0x00: 8 bytes]
        [String 0x7e0005: "settings.gradle"]
        [array 0x7e0007 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -89, -2, 26, -61, -111, 105, -75, -27, 40, 90, 94, 83, 102, 47, 37, 27]
        [String 0x7e0008: "build.gradle"]
        [array 0x7e0009 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 70, 101, -14, 32, 100, -60, -85, -103, 73, -86, 15, 54, -45, 125, 50, 39]
        [String 0x7e000a: "local.properties"]
        [array 0x7e000b classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -107, 64, 60, -33, -18, 18, 56, -84, 15, 0, -86, -73, -27, 127, -94, 27]
        [String 0x7e000c: "/Users/qtmfld/.gradle/gradle.properties"]
        [array 0x7e000d classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -44, 29, -116, -39, -113, 0, -78, 4, -23, -128, 9, -104, -20, -8, 66, 126]
        [String 0x7e000e: "gradle.properties"]
        [array 0x7e000f classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 16, -69, 118, 80, -49, -19, 41, -8, 56, -86, 64, -63, 112, -14, 98, 47]
        [String 0x7e0010: "app/build.gradle"]
        [array 0x7e0011 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -3, -11, 63, -26, 67, -41, -100, 33, 85, -59, -49, -3, -90, 53, -106, 94]

  field data:
    0x7e0003/java.util.HashMap:
        threshold: 12
        loadFactor: 0.75
]
[instance 0x7e0002: 0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums
  field data:
    0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums:
        myFileChecksums: r0x7e0004: java.util.HashMap _h0x7e0004 = r_0x7e0003;  
        myLastGradleSyncTimestamp: 1522297024540
]
//// END instance dump

$ 

java.util.HashMap 에서 다음 문자열을 볼 수 있습니다.

  • "settings.gradle"
  • "build.gradle"
  • "local.properties"
  • "/Users/qtmfld/.gradle/gradle.properties"
  • "gradle.properties"
  • "app / build.gradle"

Wh0 은 Android Studio 3.2 Preview에서 동일한 결과를 분명히했습니다.
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html


.idea 폴더의 모든 파일은 IDE (이 경우 Android 스튜디오)와 관련이 있습니다. 그리고이 파일은 프로젝트가 시작될 때 만들어졌습니다. 따라서이 파일은 절대 경로처럼 필요하지 않은 일부 내용을 포함 할 수 있으므로 .gitignore에이 파일을 추가해야합니다.


.gitignore 추가해야합니다. git add 에 포함시키지 마십시오.

왼쪽 프로젝트 창에서,

( a ) Android보기 Android 프로젝트보기로 풀다운 메뉴로 변경하십시오.
( b ) build_file_checksums.ser.idea/caches 폴더에 있습니다.
( c ) 프로젝트 루트 디렉토리의 .gitignore 를 엽니 다. ( 모듈의 .gitignore 와 혼동하지 마십시오.)

오른쪽 .gitignore 콘텐츠에서,

( d ) /.idea/caches/build_file_checksums.ser 추가 /.idea/caches/build_file_checksums.ser .

JetBrain의 가이드 는 당신이 공유해야한다고 말했다.

  • 프로젝트 루트의 .idea 디렉토리 아래에있는 모든 파일 (사용자 별 설정을 저장하는 workspace.xml tasks.xml 파일 제외)

그리고 그것은 또한 말했다

다음 을 공유하지 않을 수도 있습니다.

  • 이 파일은 가져 오기시 생성되므로 Gradle 또는 Maven 기반 프로젝트 용 .iml 파일
  • gradle.xml 파일,이 토론 참조
  • 사용자 사전 폴더 (다른 개발자의 이름이 같은 경우 충돌을 피하기 위해)
  • Gradle 또는 Maven 프로젝트 에서 생성되는 경우 .idea / libraries 아래의 XML 파일

따라서 Android Studio의 새 프로젝트에 대한 기본 .gitignore 는 다음과 같습니다.

*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild

그러나 build_file_checksums.ser 파일은 해시와 타임 스탬프가 포함 된 Java 직렬화 된 객체입니다.

  • "settings.gradle"
  • "build.gradle"
  • "local.properties"
  • "/ 사용자 / ( 사용자 이름 ) /. gradle / gradle.properties"
  • "gradle.properties"
  • "app / build.gradle"

따라서 우선 순위 P2와 심각도 S2와 같은 것으로 보이며 이미 수락되어 수정되었습니다. 기본 .gitignore 포함되는 이후 릴리스가 기대됩니다.

/.idea/caches/build_file_checksums.ser




android-studio-3.1