上传library到仓库

时间:2024-04-02 15:34:50

上传library到maven仓库

先做准备工作,首先注册账号https://bintray.com/signup/oss,注册完成后,添加新仓库

上传library到仓库

根据提示填充仓库信息,仓库名称自己定义,创建后就需要准备自己的项目library了,打开AS建立自己的library

上传library到仓库

创建完成后,在自己项目的build.gradle中添加代码

上传library到仓库

原项目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中添加代码

上传library到仓库

在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的账户信息,如下图

上传library到仓库

进入bintray.com查看自己的账户信息

上传library到仓库
上传library到仓库

输入密码后就可看到apikey

上传library到仓库

配置完local.properties后,同步项目,同步成功后,使用AS的gradle进行上传项目

上传library到仓库

上传library到仓库

看到BUILD SUCCESSFUL 表示上传成功,然后进入bintray.com网站,查看仓库,

上传library到仓库

点击进入仓库

上传library到仓库

上传成功后,在项目中引用已经上传的library再项目的build.gradle中添加仓库,在仓库的地址中添加maven仓库

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://dl.bintray.com/wodx521/maven'
        }
    }
}

如下图所示

上传library到仓库

替换过后,在需要引入的项目中添加引入代码

上传library到仓库

上传library到仓库

上图可看到添加引入代码后,同步后会出现引入的library,已经成功引入了,

如果想添加到JCenter,可以在bintray.com仓库下library中

上传library到仓库

点击add to JCenter 后,可以将library上传到JCenter,在引用是可以不添加仓库直接引入,到此上传到仓库成功