build.gradle构建脚本依赖项与依赖项?

问题描述 投票:1回答:1

[有人可以向我解释build.gradle文件中“ buildscript”中列出的缺陷与依赖性模块{}中列出的常规依赖性有何不同吗?为什么必须使用语法“实现”列出它们?我已经用谷歌搜索了,响应说构建脚本中的依赖关系,并用来“构建项目”,但是我不明白吗?任何人都可以给出更清晰的图片和答案吗?

buildscript:

buildscript
        {
            repositories
                    {
                        maven {
                            url 'myMavenFeed'
                            credentials {
                                username "myUsername"
                                password myPassword
                            }
                        }
                        mavenCentral()
                        jcenter()
                    }
            dependencies
                    {
                        classpath "com.microsoft.azure.sdk.iot:iot-device-client:1.14.1"
                    }
        }

Dependency block:

dependencies
        {
            compile group: 'com.microsoft.azure.sdk.iot', name: 'iot-device-client', version: '1.16.0'
}
gradle dependencies classpath build-script
1个回答
0
投票

[有人可以向我解释build.gradle文件中“ buildscript”中列出的缺陷与依赖性模块{}中列出的常规依赖性有何不同吗?

buildscript { }块中定义的依赖项是用于构建项目的依赖项。这些依赖项可用于您的Gradle构建文件(build.gradlebuild.gradle.kts

dependencies { }中定义的依赖关系是针对您的应用程序代码的。

因此,对于您所提问题的示例,Gradle(构建系统)在其类路径中使用iot-device-client是否有意义?为什么构建系统在其类路径上需要iot-device-client来构建您的项目?这没有意义,因此应将其删除。

现在,假设您正在开发需要iot-device-client中的某些功能或类的应用程序。您需要一种将此库添加到应用程序的代码/类路径的方法。然后,您像上面所做的那样将其声明为依赖项:

dependencies {
    implementation("com.microsoft.azure.sdk.iot:iot-device-client:1.16.0")
}

参考:

以及为什么必须使用语法“实现”列出它们?

[implementation被称为configurationA Configuration代表一组工件及其依赖性

还有更多配置,具体取决于您应用于项目的插件。例如,如果您应用Java plugin

plugins {
    id("java")
}

以下配置可供使用:

  • 实现
  • 仅编译
  • compileClasspath
  • ...还有更多

每个人都有自己的含义/用法,我强烈建议您阅读有关它们的内容here

© www.soinside.com 2019 - 2024. All rights reserved.