安卓本地Maven仓的实现
- 从Gitee上拉取,找到app下的build.gradle文件,将com.android.application改成com.android.library。
plugins {
id 'com.android.library'
}
- 将AndroidManifest.xml文件中的application标签删除,并将app下的build.gradle文件中applicationId注释掉。
- 选中你的项目,点击Build窗口中的Make Module生成对应的aar(Android Archive)文件。AAR文件是Android库项目的输出格式,包含了编译后的代码、资源文件、清单文件等。
-
生成的aar文件通常是在bulid->outputs->aar下。将生成的文件复制到一个方便的目录下,任意都可。
-
在app下的build.gradle中添加maven-publish插件,并配置本地仓库。配置完成后Sync Now即可。
plugins {
id 'com.android.library'
id 'maven-publish'
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
groupId 'com.example.navtest' // 可以随意取,一般取包名
artifactId 'navtest' // 可以随意取,一般取库的名字
version '1.0.0' // 版本号
artifact(uri("file://D:/yhf/maven/app-debug.aar")) // 此为存放aar文件的位置
}
}
repositories {
maven {
url uri("file://D:/yhf/maven") // 此为本地maven仓的位置
}
}
}
}
- Sync完成后在Gradle中会生成如下目录结构。
-
若你的Studio中没有,可能是未打开相应的开关,找到Settings中Experimenta,将如下图所示勾上即可。
-
在一切准备完成后,双击publish,成功后即可生成maven仓所有的所有文件。
-
生成的文件结构如下图所示。
-
在一个新的安卓应用项目project下的build.gradle文件中(新版是在settings.gradle中),引入本地maven仓。
pluginManagement {
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
}
}
mavenCentral()
gradlePluginPortal()
maven { url uri("file://D:/yhf/maven" ) }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url uri("file://D:/yhf/maven" ) }
}
}
- 在app下的build.gradle文件中导入依赖。
dependencies {
implementation "com.example.navtest:navtest:1.0.0"
}
-
之后点击Sync Now即可拉取对应的aar包了,在Gradle包中可以找到对应的包。
-
如果想实现远程Maven仓,可参考:安卓使用Gitee搭建远程Maven仓