上传library到maven仓库
先做准备工作,首先注册账号https://bintray.com/signup/oss,注册完成后,添加新仓库
根据提示填充仓库信息,仓库名称自己定义,创建后就需要准备自己的项目library了,打开AS建立自己的library
创建完成后,在自己项目的build.gradle中添加代码
原项目build.gradle文件内容
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
添加代码后的代码内容
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
//添加上传到jcenter maven仓库的插件
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.+'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
添加完成后,需要在需要上传的library项目build.gradle中添加代码
在build.gradle文件起始位置,
apply plugin: 'com.android.library’后添加如下代码
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray' //引用插件
version = "1.0.0" //仓库版本号
在build.gradle文件末添加如下代码
def siteUrl = 'https://github.com/wodx521/BaseLib' // Git项目主页def
def gitUrl = 'https://github.com/wodx521/BaseLib.git' // Git仓库url
group = "com.wanou.testlib" // 一般为包名
install {
repositories.mavenInstaller {
// 生成POM.xml
pom {
project {
packaging 'aar'
name 'Android' // 项目描述
url siteUrl
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer { // github开发者个人信息
id '开发者id' //开发者账号
name '开发者名称' //开发者名称
email '开发者邮箱' //开发者邮箱
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
options.encoding = "UTF-8" // 设置编码,否则中文可能会提示出错
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
options.encoding "UTF-8"
options.charSet 'UTF-8'
options.author true
options.version true
options.links "https://github.com/linglongxin24/FastDev/tree/master/mylibrary/docs/javadoc"
failOnError false
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user") //配置在local.properties中bintray的账号
key = properties.getProperty("bintray.apikey") //配置在local.properties的bintray的key
configurations = ['archives']
pkg {
repo = "maven" // 发布到Maven库
name = "TestLib" // 发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
项目跟目录中找到local.properties文件,因为该文件不会上传至github仓库,需要配置bintray.com的账户信息,如下图
进入bintray.com查看自己的账户信息
输入密码后就可看到apikey
配置完local.properties后,同步项目,同步成功后,使用AS的gradle进行上传项目
看到BUILD SUCCESSFUL 表示上传成功,然后进入bintray.com网站,查看仓库,
点击进入仓库
上传成功后,在项目中引用已经上传的library再项目的build.gradle中添加仓库,在仓库的地址中添加maven仓库
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://dl.bintray.com/wodx521/maven'
}
}
}
如下图所示
替换过后,在需要引入的项目中添加引入代码
上图可看到添加引入代码后,同步后会出现引入的library,已经成功引入了,
如果想添加到JCenter,可以在bintray.com仓库下library中
点击add to JCenter 后,可以将library上传到JCenter,在引用是可以不添加仓库直接引入,到此上传到仓库成功