web-dev-qa-db-ja.com

.idea / caches / build_file_checksums.serを.gitignoreに追加する必要がありますか?

Android St​​udio .0.1から3.1 を更新しましたが、既存のプロジェクトに見慣れないファイルがあることに気付きました。

    .idea/caches/build_file_checksums.ser

Android Gradleプラグインを 最新の3.1. ;に更新するかどうかには依存しません。 Android St​​udio 3.1で既存のプロジェクトを開くと、次のように以前の3.0.1プラグインを使用するようにプロジェクトを保持していても、ファイルbuild_file_checksums.serが自動的に作成されました。

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

また、Android St​​udio 3.1で新しいプロジェクトを作成しましたが、build_file_checksums.serファイルが最初から作成されていることがわかりました。

執筆時点では、これに関する公式文書はないようです。誰かがそれを見つけることができれば、私はそれを感謝します。


編集済み:

I inspectedjdeserialize-1.2 のコンテンツ、 Samuel には、いくつかのシステムパスが含まれているようだと指摘されました。

$ 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」

Wh は、Android St​​udio 3.2プレビューで同じ結果を明確にしました。
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html

52
qtmfld

.ideaフォルダー内のすべてのファイルは、IDE(この場合はAndroidスタジオ)に関連しています。そして、あなたが言ったように、このファイルはプロジェクトの開始時に作成されます。したがって、これらのファイルには絶対パスのような不要なコンテンツが含まれている可能性があるため、このファイルを.gitignoreに追加する必要があります。

20
Itoun

.gitignoreに追加する必要があります。 git addに含めないでください。

左側のProjectウィンドウで、

a)プルダウンメニューでAndroidビューAndroidプロジェクトビュー に変更します。
bbuild_file_checksums.serフォルダー.idea/cachesで確認できます。
c)プロジェクトルートディレクトリの.gitignoreを開きます。 (appモジュールの.gitignoreと混同しないでください。)

右側の.gitignoreコンテンツで、

d/.idea/caches/build_file_checksums.serを追加します。

enter image description here


JetBrainのガイド あなたは共有すべきだと言った

  • 。ideaプロジェクトルートのディレクトリにあるすべてのファイルexceptworkspace.xmlおよびtasks.xmlファイルユーザー固有の設定を保存する

そしてまたそれは言った

共有しない以下を検討できます。

  • 。imlGradleまたはMavenベースのプロジェクトのファイル。これらのファイルはインポート時に生成されるため
  • gradle.xml file、この説明を参照
  • user dictionaries folder(他の開発者が同じ名前を持っている場合の競合を避けるため)
  • 。idea/librariesの場合のXMLファイルGradleまたはMavenから生成プロジェクト

したがって、Android St​​udioの新しいプロジェクトのデフォルト.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」
  • 「/ Users /(ユーザー名)/。gradle/gradle.properties」
  • 「gradle.properties」
  • 「app/build.gradle」

つまり、 問題 は優先度P2および重大度S2であり、すでに受け入れられ修正されているようです。デフォルトの.gitignoreに含まれる将来のリリースを楽しみにしています

/.idea/caches/build_file_checksums.ser
26
qtmfld