基于腾讯CODING Maven的Android库发布
CODING中 允许发布 Maven制品,也就是上传私有的 Maven 仓库。
和基本Maven配置步骤类似:
- 创建仓库:选择项目,创建 Maven 制品仓库
- 添加凭证:选择项目,开发者选项 -> 项目令牌 -> 新建项目令牌
(用于配置Maven发布的用户名、密码) - 配置 Android 项目 build.gradle 发布脚本
1. 创建 Maven 制品仓库
创建成功后,得到 Maven制品库的 URL地址。
2. 创建项目令牌
创建项目令牌,复制 用户名、密码 用于 Maven 发布的仓库 凭证。
3. 使用 maven-publish 插件,配置 build.gradle 发布
- Android 使用 AGP 8.0+ 后,先配置库模块
build.gradle
:
android {publishing {singleVariant('release') {// 配置生成 源码Jar 发布withSourcesJar()// 配置生成 文档Jar 发布withJavadocJar()}}
}
build.gradle
配置publishing { }
发布信息:
// 配置 库 信息
group = "com.example.lib"
version = "1.0.0"
description = "Log Library"publishing {publications {release(MavenPublication) {pom {name = project.namedescription = project.descriptionurl = 'https://github.com/classops/LibDemo'licenses {license {name = 'The Apache License, Version 2.0'url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'}}// 配置库的开发者 用户名和邮箱developers {developer {id = 'classops'name = 'classops'email = 'classops@163.com'}}// scm 配置版本控制仓库scm {connection = 'https://github.com/classops/LibDemo.git'developerConnection = 'https://github.com/classops/LibDemo.git'url = 'https://github.com/classops/LibDemo'}}afterEvaluate {from components.release}}}repositories {maven {// 这里就是 第一步 Maven库 地址URLurl "https://g-jksu3036-maven.pkg.coding.net/repository/demo/private/"credentials {username project.codingUsernamepassword project.codingPassword}}}}
说明:codingUsername、codingPassword 就是 第2步 对应 用户名、密码。
为了安全,可配置在 Gradle 目录全局 gradle.properties
下配置密码:
codingUsername=xxx
codingPassword=xxxx
- 上传发布到Maven仓库
执行命令:
// 发布所有模块
./gradlew publish// 发布指定lib模块
./gradlew :lib:publish// 发布到 本地 mavenLocal()
./gradlew publishToMavenLocal
模板工程
参考 LibDemo
# 发布所有模块
./gradlew publish# 发布指定模块
./gradlew :lib:publish
配置:
在 lib
模块下 build.gradle
的 publishing
中,修改 pom
配置 和 仓库 配置 和 仓库 和 group
version
description
库信息。
文档
- AGP8之后需要配置发布变体:Android配置发布变体
- Gralde文档:Maven Publish Plugin
- Customizing publishing