在向项目添加依赖项时,我无法确定应该给它们的前缀,例如"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文件
如果buildscript本身需要运行某些东西,请使用classpath.
如果您的项目需要运行某些东西,请使用compile.
该buildscript{}
块用于build.gradle本身.
对于多项目构建,顶级构建文件用于根项目,特定构建文件用于子项目(模块).
顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项.
不要将应用程序依赖项放在顶级构建文件中,它们属于单个模块build.gradle文件
我猜你正在引用compile
并且classpath
在dependencies {}
块内.如果是这样,那些是依赖配置.
配置只是一组命名的依赖项.
该compile
配置是由Java插件创建.该classpath
配置通常见于buildSrc {}
,其中一个需要声明依赖块为的build.gradle,本身(为插件,也许).
如果我理解正确,你会将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}
它是用来通过构建脚本本身,而不是在你的项目中的源模块的依赖性.