登陆 https://bintray.com/ 网站注册账号,需要注意的是:
要选择免费版注册
,不要选择企业版。邮箱不要选择国内邮箱,国内邮箱注册不了
,可以用Gmail 邮箱。另外,国内访问 https://bintray.com/ 网站很慢,很有可能访问不了。
maven
(在后面添加的依赖的插件就是上传到maven仓库)点击 Create 按钮,回到主页会看到Add New Repository
下有你刚才新建的仓库。
点击上面新建的仓库,进入仓库主页,选择Add to Package
,然后填写要上传的项目信息:
上面菜单选项含义:
注意:这里创建包填写的信息就是要上传的项目信息,所以慎重慎重。
选择账号 → Edit Your Profile → API Key:
API Key 用于账号验证,在上传项目的时候需要用到,复制API Key 并保存下来。
上传 library 和 plugin 的方式有些不同,这里选择了两种方式,其实用第二种既能上传Android library 或 Java library,也能上传Android Plugin 或 Java Plugin。
首先,在项目 builde.gradle
文件中的buildscript
中添加:
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } //在国内可能下载不了相应文件,可以添加这个阿里云仓库地址,帮助下载
}
dependencies {
classpath 'com.novoda:bintray-release:0.9.1' //新添加插件,并保持最新版本
}
}
其次,在项目的gradle
文件夹下新建上传配置文件名字.gradle
,这里新建一个gradle-bintray-publish.gradle
文件,它的内容如下:
apply plugin: 'com.novoda.bintray-release' //添加插件
publish {
userOrg = USER_ORG //引用的是项目的 `gradle.properties` 文件中的环境变量,下面类似,后面会对 `gradle.properties` 文件做解释
groupId = GROUP_ID
artifactId = ARTIFACT_ID
publishVersion = VERSION
desc = DESCRIPTION
website = WEBSITE
}
//构建 sources.jar 和 javadoc.jar 并上传
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.source
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.source
}
} else {
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
}
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}
artifacts {
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
archives androidSourcesJar
archives androidJavadocsJar
} else {
archives sourcesJar
archives javadocJar
}
}
gradle/gradle-bintray-publish.gradle
文件可以上传到 GitHub。
然后,在项目的 gradle.properties
文件中添加:
USER_ORG=wangjiang7747 //在 https://bintray.com/ 网站上中申请的账号
GROUP_ID=com.wangjiang //类似 implementation 'com.android.support:appcompat-v7:28.0.0' 中的 com.android.support
ARTIFACT_ID=comment-doc //类似 implementation 'com.android.support:appcompat-v7:28.0.0' 中的 appcompat-v7
VERSION=0.0.3 //类似 implementation 'com.android.support:appcompat-v7:28.0.0' 中的 28.0.0
DESCRIPTION='this a tool that helps developer check the project\'s api easily by generating java and html document . moreover, it can standardize the java class comment.' //项目描述信息
LICENSE_APACHE=apache-2.0 //许可证
WEBSITE=https://github.com/wjrye/comment //项目 git 地址
gradle.properties
文件的作用:本地环境变量配置,存储一些敏感数据,不用上传到 GitHub。
最后,在要上传的 Module 的build.gradle
中添加:
apply from: rootProject.file('gradle/gradle-bintray-publish.gradle')
运行命令:
./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
BINTRAY_USERNAME
和 BINTRAY_KEY
就是在https://bintray.com/网站上申请的账号和 API Key。
运行命令结束后,到https://bintray.com/ 网站查看是否上传成功。
首先,在项目的 builde.gradle
文件中的buildscript
中添加:
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } //在国内可能下载不了相应文件,可以添加这个阿里云仓库地址,帮助下载
}
dependencies {
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4" //新添加插件,并保持最新版本
}
}
同样,在项目的gradle
文件夹下新建上传配置文件名字.gradle
,这里新建一个gradle-bintray-publish.gradle
文件,它的内容如下:
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
publishing {
publications {
MyPublication(MavenPublication) {
from components.java
groupId GROUP_ID
artifactId ARTIFACT_ID
version VERSION
}
}
}
group = GROUP_ID
version = VERSION
bintray {
user = BINTRAY_USER // bintray账号,需要在`gradle.properties` 文件添加环境变量配置
key = BINTRAY_API_KEY // bintray API Key,需要在`gradle.properties` 文件添加环境变量配置
configurations = ['archives']
publications = ['MyPublication'] //就是上面 "publishing {publications {" 下的 “MyPublication”
pkg {
repo = 'maven' // bintray 仓库地址
name = ARTIFACT_ID
userOrg = USER_ORG
licenses = ['Apache-2.0']
vcsUrl = VCS_URL
labels = ['Android'] // 插件标签
publicDownloadNumbers = true
publish = true
version {
name = VERSION
desc = DESCRIPTION
vcsTag = VERSION
attributes = ['gradle-plugin': 'com.wangjiang:check-file-plugin'] //'com.wangjiang:check-file-plugin 就是classpath 配置的内容
}
}
}
//构建 sources.jar 和 javadoc.jar 并上传
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.source
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.source
}
} else {
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
}
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}
artifacts {
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
archives androidSourcesJar
archives androidJavadocsJar
} else {
archives sourcesJar
archives javadocJar
}
}
gradle/gradle-bintray-publish.gradle
文件可以上传到 GitHub。
同样,在项目的 gradle.properties
文件中添加:
USER_ORG=wangjiang7747
GROUP_ID=com.wangjiang
ARTIFACT_ID=插件名字
VERSION=版本号
DESCRIPTION=这是项目描述信息
LICENSE_APACHE=许可证
WEBSITE=项目 Github 地址
VCS_URL=项目 git 地址
BINTRAY_USER=bintray 账号
BINTRAY_API_KEY=bintray API Key
最后,同样在要上传的 Module 的build.gradle
中添加:
apply from: rootProject.file('gradle/gradle-bintray-publish.gradle')
运行命令:
./gradlew clean build bintrayUpload
运行命令结束后,到https://bintray.com/网站查看是否上传成功。
进入仓库主页,再进入包主页,查看菜单Files下是否有你上传的文件。
仓库地址:
右上角的地址:https://dl.bintray.com/wangjiang7747/maven
就是你的仓库地址。
将仓库地址添加到本地项目中,查看是否能正常下载。
buildscript {
repositories {
maven { url '你的仓库地址' }
}
dependencies {
}
}
如果想删除新建的包或不再使用的包,可以点击对应包右边的 Edit 按钮:
然后,在Edit Package 右边点击 Delete 按钮就可以删除了:
如果想删除上传的文件,可以点击对应文件右边的 Delete 按钮:
当确定项目没有问题后,就可以将项目发布到jcenter。
选择对应包主页右上角菜单 Actions → Add to Jcenter:
发布后会收到邮件,等待审核通过。通过之后,就可以直接通过jcenter下载了。直接在Module 中添加依赖:
implementation 'group:name:version'