revel1.Gradle系列1-dependencies{}中的api、implementatio。。。
⽂章⽬录
1. dependencies {}中引⼊依赖三种⽅式:compile,api,implementation
1. adle⽂件部分代码列举,如下所⽰:
orange flower//使⽤以下插件
apply plugin:'java'
apply plugin:'org.springframework.boot'
apply plugin:'io.spring.dependency-management'
group ='ample'
version ='0.0.1-SNAPSHOT'
sourceCompatibility ='1.8'//jvm版本要求
/
hbi/ 定义仓库
high maintenance
repositories {
maven{url '/nexus/content/groups/public/'}
maven{url '/'}
mavenCentral()
celebrated}
// 定义依赖:声明项⽬中需要哪些依赖
dependencies {
compile 'org.springframework.boot:spring-boot-starter'
}
⑴ compile 关键字引⼊依赖:
上⾯的dependencies {}下的"compile":我们在gradle中引⽤依赖
时⼀般使⽤此关键字来进⾏引⼊。
⑵ api和 compile 关键字引⼊依赖区分:
api和compile关键字作⽤效果是⼀样的,使⽤时可相互替换。但实际上,api关键字是⽤来替代compile关键字的,因为compile关键字在以后将会被弃⽤。在⾼版本的gradle中若继续去使⽤compile关键字会报错并提⽰使⽤api关键字代替。
⑶ implementation关键字和compile关键字引⼊依赖说明:
在同⼀个模块下,implementation关键字和compile关键字的使
⽤效果相同,但是在不同模块项⽬下,就会有所区别了。
# 以下使⽤⼀个简单例⼦来说明implementation关键字和compile关键字引⼊依赖的区别:
➀第⼀:在项⽬中有⼀个"模块1",此模块1的'adle'中引
中文转换英文
⼊了两个依赖包:
implementation ':1.0.0'
compile ':2.0.0'
➁第⼆:在'模块2'中的'adle'引⼊'模块1'。
compile project(':模块1')
➂第三:这是若尝试在'模块2'中引⼊'模块1'在gradle中配置的两全球最丑建筑
个maven库,你会发现,使⽤implementation关键字引⼊的'xxx:
1.0.0'包⽆法在'模块2'中使⽤,⽽使⽤compile关键字引⼊
的'yyy:2.0.0'依赖则可以在'模块2'中使⽤。
这样,两个关键字的具体区别就很明显,api关键字以及compile关
键字引⽤的依赖包对于其他模块来说是可见的,可传递性的,⽽使⽤
implementation关键字引⽤的依赖包对于其他模块来说是不可见
的,⽆法将此依赖传递下去。
2. ⼩结
1.对api,compile,implementation关键字做⼀个简单⼩结:
super baby
⑴ api 关键字:api关键字效果等同于compile关键字使⽤时可以互相替
bray换。api关键字是⽤来替代compile关键字的。在⾼版本的gradle,使⽤
compile关键字会报错并提⽰使⽤api关键字代替
⑵ compile 关键字:引⼊需要的依赖包,使⽤此关键字引⽤的依赖可以逐级传递到各个依赖的模块中。作⽤范围⼤。
⑶ implementation 关键字:使⽤此关键字引⼊的依赖仅仅作⽤于本模
美孚英语块。作⽤范围不⼤,⽆法逐级传递依赖。