Android Gradle - 用啥代替 compileOnly?

Posted

技术标签:

【中文标题】Android Gradle - 用啥代替 compileOnly?【英文标题】:Android Gradle - What to use instead of compileOnly?Android Gradle - 用什么代替 compileOnly? 【发布时间】:2018-04-09 01:10:40 【问题描述】:

根据下面的SO帖子,compile最近变成了implementation:What's the difference between implementation and compile in gradle

我的问题是我应该使用什么来代替compileOnly?上面的帖子没有解决该 gradle 配置。我知道我仍然可以使用compileOnly,但是推荐的配置是什么,不会很快被弃用?

似乎所有包含..compile.. 的配置都将被..implementation.. 替换。我尝试了implementationOnly,但没有被 android Studio 接受。

【问题讨论】:

并非所有..compile.. 都会被..implementation.. 替换,例如api 您可以使用“我的依赖项中没有编译语句”来扩展您的问题。即使您在构建应用程序时,错误仍然存​​在:“编译”已过时...... ",如果这也是问题的话。 【参考方案1】:

compileOnly 替代品——被弃用的等效配置是provided。见the documentation。

【讨论】:

我的依赖项中没有编译语句。即使你,当应用程序正在构建时,错误仍然存​​在:'compile' is obsolete... @CommonsWare :每天我都因为你而受益。非常感谢您的贡献:-)【参考方案2】:

有一种情况,当您接受IDE自动建议将项目添加到您的gradle文件时,它会添加“编译项目(路径:'xxx')”。纠正它,你会没事的。

【讨论】:

【参考方案3】:

您的项目 gradle 依赖项应该从

更改
dependencies 
    provided 'com.someDependency:api:78'

dependencies 
    compileOnly 'com.someDependency:api:78'

【讨论】:

以上是关于Android Gradle - 用啥代替 compileOnly?的主要内容,如果未能解决你的问题,请参考以下文章

gp里用啥代替oracle里rownum,用啥代替rowid???

用啥代替 $.mobile.changePage()?

Swift 4:NSFilenamesPboardType 不可用。用啥代替 registerForDraggedTypes?

用啥代替 socket.removeAllListeners();在客户端

JwtAccessTokenConverter 和 JwtTokenStore 被贬低了。可以用啥代替?

`shouldOverrideUrlLoading` 真的被弃用了吗?我可以用啥代替?