从同一模块构建 AAR 和 APK
Building AAR and APK from the same module
我需要根据不同的构建风格从同一个模块生成 AAR 和 APK。
但是 APK 需要 applicationId,而库则不需要。我必须在 build.gradle 中添加 if-case。
有没有更好的方法可以达到同样的效果?
我当前的 gradle 文件:
productFlavors {
generateAar {
versionCode buildVersionCode()
versionName getPackageName()
}
generateApk {
if (!library) {
applicationId "appId"
}
versionCode buildVersionCode()
versionName getPackageName()
}
模块可以是库或应用程序,不能同时是。
您可能应该考虑将所有代码包装到一个库模块中,该库模块可供应用程序模块使用(仅清单和启动器资源可绘制对象)
这样您的逻辑就可以从库中打包为一个 aar 工件,并且您的应用程序模块可以在同一项目中直接使用它,如果在单独的项目中则可以作为打包的工件使用它。
PS:使用本地 aar 时,需要在依赖它的应用程序模块中显式定义对工件的传递依赖。
此外,根据您的用例,您可能需要考虑如何按功能或层(数据、域、表示等)对项目进行模块化
我需要根据不同的构建风格从同一个模块生成 AAR 和 APK。
但是 APK 需要 applicationId,而库则不需要。我必须在 build.gradle 中添加 if-case。 有没有更好的方法可以达到同样的效果?
我当前的 gradle 文件:
productFlavors {
generateAar {
versionCode buildVersionCode()
versionName getPackageName()
}
generateApk {
if (!library) {
applicationId "appId"
}
versionCode buildVersionCode()
versionName getPackageName()
}
模块可以是库或应用程序,不能同时是。
您可能应该考虑将所有代码包装到一个库模块中,该库模块可供应用程序模块使用(仅清单和启动器资源可绘制对象)
这样您的逻辑就可以从库中打包为一个 aar 工件,并且您的应用程序模块可以在同一项目中直接使用它,如果在单独的项目中则可以作为打包的工件使用它。
PS:使用本地 aar 时,需要在依赖它的应用程序模块中显式定义对工件的传递依赖。
此外,根据您的用例,您可能需要考虑如何按功能或层(数据、域、表示等)对项目进行模块化