前言
日常开发中我们经常需要使用三方库,一般来说三方库都是托管在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/') }