gradle依赖中的compile,testCompile和provided有啥区别
Posted
技术标签:
【中文标题】gradle依赖中的compile,testCompile和provided有啥区别【英文标题】:what is the difference between compile, testCompile and provided in gradle dependencygradle依赖中的compile,testCompile和provided有什么区别 【发布时间】:2016-10-15 20:46:20 【问题描述】:我正在使用 android studio 并且在项目结构中 -> 依赖项选项卡中我可以看到以下选项:
-
编译
提供
APK
测试编译
调试编译
发布编译
我的问题:gradle依赖中compile、testCompile和provided有什么区别
【问题讨论】:
Compile, Provided, APK - Android dependency scope的可能重复 【参考方案1】:compile
是您构建应用程序所需的一组依赖项,而testCompile
是一组仅用于测试的依赖项。
例如查看build.gradle
(取自here)
apply plugin: 'java'
repositories
mavenCentral()
dependencies
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
这指定需要hibernate-core
来构建您的代码,但junit
(一个测试框架)仅用于测试。由于在运行时不需要它,所以它不会包含在发布的包中。
【讨论】:
抱歉吹毛求疵,但最后一行不应该是:因为它在运行时不需要,所以它不会包含在发布的包中。【参考方案2】:您应该阅读发行版随附的用户指南,或通过http://gradle.org/documentation/ 在线阅读。
简而言之,“compile”用于“main”代码的依赖项,“testCompile”用于测试类,“provided”用于在编译时使用但不存储在 WAR 文件中的依赖项(因为它们应该在您的 Web 容器中可用)。
以下帖子可能有相关信息:Compile, Provided, APK - Android dependency scope。
【讨论】:
问题被标记为 Android。 WAR 文件不适用以上是关于gradle依赖中的compile,testCompile和provided有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
“compile”语句在build.Gradle中的位置在哪里?
Java使用 Gradle 依赖配置compile,implementation和api的区别