[英]Exclude module on build Android Studio
我有一个包含3个模块的Android Studio项目。 A,B,C。A依赖于C,B依赖于C。我试图加快构建速度,并且我意识到,每次执行assembleRelease / assembeDebug任务时,它都会构建所有模块。 每次构建模块A时,都只应构建A和C,因为B在该任务中没有依赖性,对吗? 每次构建模块A时,如何避免构建模块B?
模块A的依赖项:
dependencies {
compile project(path: ':c', configuration: 'release')
provided files('libs/some-lib.jar')
}
模块B的依赖项:
dependencies {
compile project(path: ':c', configuration: 'debug')
}
模块C的依赖关系:
dependencies {
compile files('libs/other-lib.jar')
}
我已在评论中明确指出,我认为hacking settings.gradle
以删除模块是一个坏主意。
因此,如果您无法在打开两个或多个项目的情况下运行Android Studio,或者不想在命令行上调用Gradle,或者只是想禁用某些模块,因为它们对您不感兴趣,那么实际上是支持此操作的方法。 (至少在最新的Android Studio版本(如3.2.x)中。)
由于这只会更改您的本地项目,并且绝不会偶然提交,因此这是安全地减少模块开销的安全方法。 我认为它甚至可以为您同步,因此您无需手动强制同步。
Android Studio中存在一个错误 ,如果您使用Gradle项目对话框运行任务,这些任务将在根上下文中运行。 也就是说,如果仔细查看,即使子模块任务也像在根级别上运行同一任务一样运行。
解决方案:
只需在根settings.gradle
文件中删除相关模块(在本例中为B)的include
语句,即可阻止Android Studio构建B,因为它将从整个Gradle项目中将其排除。 该模块将保持不变,但是,如果您打算修改其中的任何代码,则必须重新添加include
语句。 另请注意,修改settings.gradle
文件将要求Gradle Sync for Android Studio正常运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.