1. 发布 Android 库
发布到 jCenter 和 Maven
1.1. jar or aar
- .jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
- .aar:包含所有资源,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。
1.2. Javadoc
1.3. 发布到 jCenter
bintray 注册账号 > 创建 repo > SET ME UP! > Deploying with Gradle > Uploading > Deploying with Gradle
1.4. 发布到 MavenCentral
- Maven Central requirements
- Maven Central Producers
- [Deploying to OSSRH with Gradle](http://central.sonatype.org/pages/gradle.html
1.4.1. Sonatype OSSRH
Sonatype's Open Source Software Repository Hosting
Sonatype OSSRH使用Nexus 为开源项目提供仓库管理服务,该仓库就是所谓maven的中央仓库,OSSRH允许我们向Maven中央仓库提交二进制文件。
- 提交(deploy)开发版本的二进制文件(snapshorts)
- 阶段性的发布版本
- 发布一个release,然后同步他们到中央仓库。
1.4.2. 申请权限
- sonatype 注册账号
- sonatype 创建 Project 为
Community Support - Open Source Project Repository Hosting
的 issue, 状态变更为RESOLVED
才可以提交包
1.4.3. GPG 签名
- 生成密钥
gpg --gen-key
- 查看公钥
gpg --list-keys
,pub 2048R/
后 8 们为signing.keyId
- 查看私钥
gpg --list-secret-keys
,signing.secretKeyRingFile
的值取私钥路径 - 上传公钥
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys <signing.keyId>
上传的公钥用来验证发布时的文件 - 输出公钥
gpg -a --export your-email@your-mailbox.com > public_key_sender.asc
- 输出私钥
gpg -a --export-secret-key your-email@your-mailbox.com > private_key_sender.asc
1.4.4. build.gradle
参考 http://central.sonatype.org/pages/gradle.html
1.4.5. 发布
gradle uploadArchives
发布成功后参考 release 从 stagingRepositories 可以找到上传的包,勾选 > Close > Release 发布到 Maven Central Repository
1.5. Questions
- Could not upload to 'https://*****.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path '**.pom']
这个问题一般都是你的module的名字和你在project.properties 配置的artifactId不一致导致的,手动配置 artifactId 解决
version = PROJ_VERSION
group = PROJ_GROUP
archivesBaseName = PROJ_NAME