如Android Studio 3.0(canary 3.0)所示,我们现在通过声明depedencies
而不是implementation
配置来添加compile
。
// Before
compile 'com.android.support:appcompat-v7:25.3.1'
// Currently
implementation 'com.android.support:appcompat-v7:25.3.1'
我们仍然可以使用compile
,但我想了解:
implementation
和compile
配置有什么区别?implementation
作为默认值?答案 0 :(得分:28)
感谢来自@petter的真正有用的链接,我想添加如下摘要。
这意味着Android Gradle build
开始使用java-library
插件而不是之前的java
插件。这个插件引入了exposed API
概念和两个configuration
来声明依赖关系。
应该用于声明由...导出的依赖项 库API
例如,在您正在构建其他应用程序使用的Java(或Android)库的情况下。如果您使用任何第三方库并且想要将其API公开给您的库的消费者,您应该声明如下。
api 'commons-httpclient:commons-httpclient:3.1'
应该用于声明内部的依赖项 成分
在开发Android应用时,我们的app
模块是终点,无需在外部公开任何部分。应该使用implementation
。
implementation 'org.apache.commons:commons-lang3:3.5'
之前的compile
配置与api
的工作方式相同。但是,implementation
带来了以下好处。
答案 1 :(得分:13)
似乎已弃用compile
,而应使用api
或implementation
。根据{{3}}:
compile
配置仍然存在,但不应使用,因为它不会提供api
和implementation
配置提供的保证。