背景
随着项目的增多,很多代码都需要集中管理,实现组件化的开发;在网上找了一大堆的资料,发现大多都已经不适应了,东拼西凑之后终于实现了自己想要的效果,做个笔记方便以后查阅。
在想要打包成被其他项目所引用使用的Module的build配置文件中添加如下代码:
plugins {
id 'com.android.library'
id 'maven-publish'
}
//此处省略其他配置...
publishing {
publications {
maven(MavenPublication) {
groupId = 'com.xxx.util'
artifactId = 'util'
version = '1.0.1'
afterEvaluate {
from components.release
}
}
}
repositories {
maven {
//本地仓库地址
url = 'D:\\Projects\\Test\\repository'
}
}
}
包名版本号仓库地址等跟据自己的情况填写。
Sync Now一下然后再打开工具栏Terminal,输入命令:
.\gradlew publish
执行以后可能会报一个错误:大致意思就是你的系统没有设置环境变量JAVA_HOME;
然后我们去设置环境变量,如下:
jdk目录跟据自己的实际情况填写,现在jdk都已经集成在AndroidStudio里面了,路径在自己的AndroidStudio安装文件夹下,所以不用再额外再去下载安装包安装。
配置好环境变量以后需要关闭AS重新打开项目以后再执行上面的打包命令,不然还是会报上面的错误。
然后在需要引用此库的项目工程根目录配置文件settings.gradle中配置本地库路径如下:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
//本地仓库地址
maven { url "D:\\Projects\\Test\\repository" }
}
}
rootProject.name = "My Application"
include ':app'
然后再像平时引用第三方库一样在build配置文件里面添加引用配置就行了。
dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
//本地开发工具包
implementation 'com.xxx.util:util:1.0.1'
}