AndroidStudio AGP 7+, 编译aar并输出到本地仓库

1 编写构建gradle脚本代码

1.1 配置publication和repository

在指定moudle目录下新建名为"maven-publish.gradle"文件,其声明的publication和repository如下所示:

groovy 复制代码
apply plugin: 'maven-publish'

// This creates a task called publishReleaseToMyRepoRepository that
// consists of the name of the publication and the name of the repository.
publishing {
    publications {
        release(MavenPublication) {
            groupId = 'yourGroupId'
            artifactId = 'yourArtifactId'
            version = '1.1.1'

            afterEvaluate {
                from components.release //software component name is release.
            }
        }
    }

    repositories {
        maven {
            name = 'myrepo' // repository name is myrepo
            url = "${project.buildDir}/repo" // the repository is generated inside the build folder of the project, under a repo directory.
        }
    }
}

上述配置经build后会生成一个 publishReleaseToMyRepoRepository

的task。

在gradle面板中可以搜索到这个task。

1.2 配置输出aar文件的名字

在指定moudle 目录下的gradle文件中配置如下:

groovy 复制代码
plugins {
    id 'com.android.library'
}

apply from: 'maven-publish.gradle'
android {
	...

    defaultConfig {
        ...

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    ...

    libraryVariants.all { variant ->
        def path = "xxx_${variant.buildType.name}"+
                "_${versionNameStr}.aar"
        variant.outputs.forEach {
            it.outputFileName = path
        }
    }
}

并引用上文中的maven-publish.gradle 脚本

apply from: 'maven-push.gradle'

2 编译aar

通过gradle面板按照1.1中的图示找到 task: publishReleaseToMyRepoRepository

双击后,便开始执行该task,然后在module->build->repo目录下输出了aar。

3 参考文章

Upload your library

相关推荐
取经蜗牛8 个月前
Android:发布aar到maven仓库,使用maven-publish插件
ide·maven·android studio·maven-publish·aar
布丁吖10 个月前
Maven将Jar包打入本地仓库
java·maven·jar·本地仓库
SpongeBob@Hefei1 年前
从0到1学会Git(第二部分):Git的本地操作和管理
git·github·码云·本地仓库