buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:1.3.1"
classpath "com.meizu.flyme.internet:publish-plugin:1.+"
}
}
apply plugin: 'com.android.library'
// 在apply android gradle插件之后apply本插件
apply plugin: 'com.comsince.publisher'
引用过本插件的Library工程, 可以打包aar,javadoc,jar 发布到 Jcenter 可以在 Android Studio 的gradle任务图形化界面中双击 publishing -> bintrayUpload
会失败, 因为没有配置 帐号, 密码
bintray.user=comsince
# 你的bintray 用户名bintray.apikey=your api key
# 你的bintray api keybintray.repo=
# 你创建的bintray repo名称bintray.name=
你所要发布的库的名称bintray.userOrg=
新版的jcenter,需要提供你创建的组织名称,不然无法上传成功
NOTE: 有关JCenter申请可参考
Library开发者发布的时候, 可以在 工程里面修改以上数据, 也可以通过 gradle.properties
更改
libGroup=com.comsince.github
libId=publish-plugin
libVersion=1.0.0
默认的 Group 是工程的 包名 默认的 artifactId 是library工程的 项目名 默认的 version 是library工程的 versionName
如果你自己搭建了Actifactory,需要配置一下内容:
-
artifactory.url=
# 需要上传的artifactory的url,默认为http://oss.jfrog.org/artifactory -
artifactory.repo.key=
# artifactory repo 名称,默认为libs-release-local -
artifactory.user=
# artifactory 用户名 -
artifactory.password=
artifactory 密码
此时通过 Android Studio 图形面板, 或者gradle命令
- bintray 上传命令
./gradlew bintrayUpload
- artifactory 上传命令
./gradlew artifactoryPublish
gradle.properties: build.gradle同级目录下
-
libGroup=com.comsince.github
# 建议不配置, 默认使用工程包名配置 aar 的group, 如果不配置, 默认使用 Library工程的 包名
-
libId=publisher
配置 aar 以及 proguard 的 id, 如果不配置, 默认使用 Library工程的 项目名
-
libVersion=1.1
# 建议不配置, 默认使用工程版本名VersionName配置 aar的 版本号, 如果不配置, 默认使用 Library工程的 versionName
-
libPublish=false
# 是否立即发布到jcenter仓库中
local.properties: build.gradle同级目录下,
local.properties文件应该在.gitignore中屏蔽掉, 此文件仅用于本地开发
bintray.user=comsince
# 你的bintray 用户名bintray.apikey=your api key
# 你的bintray api keybintray.repo=
# 你创建的bintray repo名称bintray.name=
你所要发布的库的名称bintray.userOrg=
新版的jcenter,需要提供你创建的组织名称,不然无法上传成功bintray.vcsUrl=
你开源的项目地址
NOTE: 以下信息不填写,代表不启动bintray的MavenCentral同步功能,请在确认此gpg使用方法后启用此功能
- 对于超大型应用, lintVital时OOM, 请按如下配置
gradle.properties 中开启
org.gradle.jvmargs=-Xmx2048m
-XX:MaxPermSize=512m
-XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=UTF-8
org.gradle.parallel=true
-
对于引用了很多模块的超大型应用, dex时OOM, 请按如下配置
build.gradle中
android {
dexOptions {
jumboMode true
incremental true
preDexLibraries false
javaMaxHeapSize "4g"
}
}
**NOTE:**插件支持自动同步到MavenCentral,需要你按照如下步骤操作
-
sonatype.org注册账户
-
新建一个MavenCentral的issue,大概要等待一周的审核时间 Create a Sonatype account for Maven Central,注意填写如下信息
Project
: Community Support - Open Source Project Repository HostingIssue Type
: New ProjectSummary
: Your library's name in summary, for example, The Cheese LibraryGroup Id
: Put the root GROUP_ID, for example, com.inthecheeselibrary . After you got an approval, every single library starts with com.inthecheeselibrary will be allowed to upload to repository, for example, com.inthecheeselibrary.somelibProject URL
: Put a URL of any library you plan to distribute, for example, https://github.com/nuuneoi/FBLikeAndroidSCM URL
: URL of Source Control, for example, https://github.com/nuuneoi/FBLikeAndroid.git
-
GPG 公钥和私钥申请配置
-
local.properties 配置相关的信息如下:
-
local.properties 配置模板
# 你的bintray 用户名
bintray.user=
# 你的bintray api key
bintray.apikey=
# 你创建的bintray repo名称
bintray.repo=
# 你所要发布的库的名称
bintray.name=
# 你的开源项目地址
bintray.vcsUrl=
# 新版的jcenter,需要提供你创建的组织名称,不然无法上传成功
bintray.userOrg=
# [详情参看](https://github.com/bintray/gradle-bintray-plugin#buildgradle)
bintray.gpg.password =
# oss账户名
oss_user=
# 如果要同步到MavenCentral,需要到这里[申请](https://issues.sonatype.org/secure/Dashboard.jspa)账户
oss_password=
# 同步到MavenCentral必须配置
developer_id =
developer_name=
developer_email=
- gradle.properties 配置模板
# 需要上传的artifactory的url,默认为http://oss.jfrog.org/artifactory
artifactory.url=
# artifactory repo 名称,默认为oss-snapshot-local
artifactory.repo.key=