前言
日常开发中我们经常需要使用三方库,一般来说三方库都是托管在jcenter等上面,我们只需要一句话即可进行引用,下面就介绍下引用原理以及将自己的代码打包上传等。
上传到本地
maven仓库其实就是一个遵循特定目录结构的文件夹而已,所以我们可以直接将仓库放在本地即可。
1、应用maven插件
apply plugin: 'maven'
2、定义上传信息
uploadArchives {
repositories {
mavenDeployer {
//设置插件的GAV参数
pom.groupId = 'com.fmos.fake'
pom.artifactId = 'processor'
pom.version = '1.0.5-snapshots'
//文件发布到下面目录
repository(url: uri("${rootProject.projectDir}/repo"))
}
}
}
pom.groupId 类似于包名
pom.artifactId 类似于项目名
pom.version 版本号
使用方法就是很简单的一句话 :
implementation "com.fmos.fake:processor:1.0.5"
3、执行任务
我们可以看到如下任务,执行即可在项目的同级目录下面看到一个repo文件夹,里面就包含了我们上传的东西
4、使用本地仓库
我们需要引入我们刚才的本地仓库,直接使用maven ,如下即可
// build.gradle
allprojects {
repositories {
maven { url uri("${rootProject.projectDir}/repo") }
google()
jcenter()
}
}
// app/build.gradle
implementation "com.fmos.fake:processor:1.0.5"
ps:当然我们也可以顺便上传源码以及文档,需要注意的是,如果上传文档需要指定编码方式,不然可能出现中文乱码。完成版配置如下
apply plugin: 'com.android.library'
apply plugin: 'maven'
android {
}
dependencies {
}
//生成文档注释
task androidJavadocs(type: Javadoc) {
failOnError = false
source = android.sourceSets.main.java.srcDirs
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath += files(ext.androidJar)
}
//防止生成的文档中文乱码
tasks.withType(Javadoc) {
options{
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
//将文档打包成jar
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
//将源码打包
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//包含文档和源码的aar
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
uploadArchives {
repositories {
mavenDeployer {
//设置插件的GAV参数
pom.groupId = 'com.fmos.fake'
pom.artifactId = 'processor'
pom.version = '1.0.5'
//文件发布到下面目录
repository(url: uri('${rootProject.projectDir}/repo'))
}
}
}
上传到本地maven仓库
如果我们只是使用自己使用nexus搭建仓库,那么其实我们只需要继续修改一点点而已,首先搭建本地仓库就不重复了,只需要搜索"使用nexus搭建本库仓库"即可,给出一个参看链接:https://www.cnblogs.com/demingblog/p/3840174.html
然后修改一点脚本加上用户名密码即可
uploadArchives {
repositories {
mavenDeployer {
//设置插件的GAV参数
pom.groupId = 'com.fmos.fake'
pom.artifactId = 'processor'
pom.version = '1.0.5-snapshots'
//文件发布到下面目录 加入了用户名密码
repository(url: uri('http://127.0.0.1:8081/repository/maven-releases/')) {
authentication(userName: 'admin', password: 'admin123')
}
}
}
}
配置本地仓库
maven { url uri('http://127.0.0.1:8081/repository/maven-releases/') }
当然我们也可以直接使用mavenLocal()
,默认地址在C:/Users/XXX/.m2/repository/下面
allprojects {
repositories {
mavenLocal()
mavenCentral()
google()
}
}
上传到bintray
请查看https://github.com/CB2Git/JCenter