我已经看到了以下几种在Gradle中编写依赖项的方式:
implementation("com.squareup.okhttp3:okhttp:3.12.0")
和
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
和
compile 'com.squareup.okhttp3:okhttp:3.12.0'
他们是用不同的方式完成同一件事还是彼此之间有差异?
答案 0 :(得分:3)
build.gradle
文件只是Groovy脚本。所以它的语法在这里适用
在Groovy中,您可以在调用函数时忽略括号,因此
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
实际上等于
implementation('com.squareup.okhttp3:okhttp:3.12.0')
在Groovy中,您还具有"
表示的GString
s。它们包含嵌入式String
。在这种情况下,您不会插值任何值,所以
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
和
implementation "com.squareup.okhttp3:okhttp:3.12.0"
是等效的。请注意,如果您想插值一些值,那么您就可以这样做
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" // this line works
implementation 'com.squareup.okhttp3:okhttp:$okhttpVersion' // this line doesn't work
不推荐使用 compile
方法定义依赖项,而推荐使用implementation
和api
。您可以找到更多信息here。您可以考虑,如果以某种方式公开依赖项的类,那么您将使用api
,但是如果在内部使用依赖项,则implementation
很好
答案 1 :(得分:0)
compile
配置已被弃用,并由implementation
或api
取代。