当前位置:  开发笔记 > 编程语言 > 正文

Gradle:classpath和编译依赖项有什么区别?

如何解决《Gradle:classpath和编译依赖项有什么区别?》经验,为你挑选了3个好方法。

在向项目添加依赖项时,我无法确定应该给它们的前缀,例如"classpath""compile".

例如,下面的依赖项应该是编译时还是类路径?

另外,这应该在我的应用程序 build.gradle中还是在模块特定的build.gradle中?

当前的build.gradle(在应用程序级别):

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.hibernate:hibernate-core:5.0.5.Final'
    compile 'mysql:mysql-connector-java:5.1.38'
} 

小智.. 35

如果buildscript本身需要运行某些东西,请使用classpath.

如果您的项目需要运行某些东西,请使用compile.

buildscript{}块用于build.gradle本身.

对于多项目构建,顶级构建文件用于根项目,特定构建文件用于子项目(模块).

顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项.

不要将应用程序依赖项放在顶级构建文件中,它们属于单个模块build.gradle文件



1> 小智..:

如果buildscript本身需要运行某些东西,请使用classpath.

如果您的项目需要运行某些东西,请使用compile.

buildscript{}块用于build.gradle本身.

对于多项目构建,顶级构建文件用于根项目,特定构建文件用于子项目(模块).

顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项.

不要将应用程序依赖项放在顶级构建文件中,它们属于单个模块build.gradle文件



2> Eric Wendeli..:

我猜你正在引用compile并且classpathdependencies {}块内.如果是这样,那些是依赖配置.

配置只是一组命名的依赖项.

compile配置是由Java插件创建.该classpath配置通常见于buildSrc {},其中一个需要声明依赖块为的build.gradle,本身(为插件,也许).



3> Teng-pao Yu..:

如果我理解正确,你会将Project.dependencies脚本块与Project.buildscript.dependencies脚本块混淆(就像我在达到这个问题时所做的那样).

我会试着用我发现的东西回答这个问题.

我想你应该已经熟悉了Project.dependencies脚本块.在这个块中,我们声明了源代码所需的依赖项.有几种方法可以声明项目所需的依赖项.请参阅Gradle教程:依赖类型.我只会提到与此问题最相关的部分:

compile 'org.hibernate:hibernate-core:5.0.5.Final'是一个模块依赖声明.编译配置(现在已被实现配置弃用.)仅仅是一个关键字.Implementation only dependencies.它不是描述它所依赖的类型的关键字(按类型在这里我遵循教程中定义的三种类型,即模块文件和项目.)

在Gradle教程:组织构建逻辑中,它说:

如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本类路径中.您可以使用buildscript()方法执行此操作,并传入一个声明构建脚本类路径的闭包.

这与您声明的方式相同,例如,Java编译类路径.您可以使用依赖项类型中描述的任何依赖项类型,但项目依赖项除外.

声明构建脚本类路径后,您可以像构建路径中的任何其他类一样使用构建脚本中的类.

我希望现在事情变得清晰了.随着classpath "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"我们设定classpath的配置与com.android.tools.build:gradle:${Versions.android_gradle_plugin}它是用来通过构建脚本本身,而不是在你的项目中的源模块的依赖性.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有