在 build.gradle Android 中组织导入的正确方法

The correct way to organize imports in build.gradle Android

请告诉我在 build.gradle Android 中向项目添加新导入的最佳方法? 在各种项目中,我看到了不同的方法,例如:

有评论

    //navigation
    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

    //test
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

或没有

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

具有明确指定的版本

    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

使用变量

 def nav_version = "2.4.0"

  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

我认为这很重要,因为每个开发人员都不止一次访问这个文件,因此我希望它可读方便最佳。 您在项目中使用什么方法? 提前感谢任何反馈!

这完全取决于您和其他开发人员的理解难易程度。

with comments

正如您在注释中看到的那样,每个开发人员都可以轻松地理解哪个库用于什么,并且也很容易在一堆库中找到特定的库,这就是为什么我个人认为我总是更喜欢注释。

//navigation
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

//test
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

秒是

using a variable

def nav_version = "2.4.0"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

我个人的意见是始终与变量一起使用,因为它可以很容易地更改一组相同版本库的版本,正如您在更改后看到的那样 nav_version 然后一组导航库版本更改,这在更新版本时非常有帮助,你永远不会遇到版本相关的问题。

这里我使用的方法是

//Paging
def paging_version = "3.1.0"
implementation "androidx.paging:paging-runtime-ktx:$paging_version"

//Dagger Hilt
def hilt_version = "2.38.1"
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-compiler:$hilt_version"

//Glide
def glide_version = "4.12.0"
implementation "com.github.bumptech.glide:glide:$glide_version"