0%

Android AGP 9.x 修改编译产物文件名的方法

目标 AGP 版本

classpath "com.android.tools.build:gradle:9.1.1"

修改编译产物文件名

Application

android {
    ...
    androidComponents {
        /**
         * {@link com.android.build.api.extension.impl.AndroidComponentsExtensionImpl}
         */
        onVariants(selector().withBuildType("release")) { variant ->
            /**
             * {@link com.android.build.api.component.analytics.AnalyticsEnabledApplicationVariant}
             * {@link com.android.build.api.variant.ApplicationVariant}
             * {@link com.android.build.api.variant.impl.ApplicationVariantImpl}
             * {@link com.android.build.gradle.internal.component.ApplicationCreationConfig}
             * {@link com.android.build.api.variant.impl.VariantOutputList}
             */
            variant.outputs.each { output ->
                /**
                 * {@link com.android.build.api.variant.impl.VariantOutputImpl}
                 */
                output.outputFileName.set('XXXXX_${output.versionName.get()}_${variant.buildType}.apk')
            }
        }
    }
}

Library

android {
    ...
    androidComponents {
        /**
         * {@link com.android.build.api.extension.impl.AndroidComponentsExtensionImpl}
         */
        onVariants(selector().withBuildType("release")) { variant ->
            /**
             * {@link com.android.build.api.component.analytics.AnalyticsEnabledLibraryVariant}
             * {@link com.android.build.api.variant.LibraryVariant}
             * {@link com.android.build.api.variant.impl.LibraryVariantImpl}
             * {@link com.android.build.gradle.internal.component.LibraryCreationConfig}
             * {@link com.android.build.gradle.internal.component.AarCreationConfig}
             */
            variant.delegate.aarOutputFileName.set("xxx-lib_${defaultConfig.versionName}_${variant.delegate.buildType}.aar")
        }
    }
}

参考

  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/235
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!