自学内容网 自学内容网

安卓本地Maven仓的实现

  1. 从Gitee上拉取,找到app下的build.gradle文件,将com.android.application改成com.android.library。
plugins {
    id 'com.android.library'
}

在这里插入图片描述

  1. 将AndroidManifest.xml文件中的application标签删除,并将app下的build.gradle文件中applicationId注释掉。

在这里插入图片描述

  1. 选中你的项目,点击Build窗口中的Make Module生成对应的aar(Android Archive)文件。AAR文件是Android库项目的输出格式,包含了编译后的代码、资源文件、清单文件等。

在这里插入图片描述

  1. 生成的aar文件通常是在bulid->outputs->aar下。将生成的文件复制到一个方便的目录下,任意都可。
    在这里插入图片描述

  2. 在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仓的位置
            }
        }
    }
}

  1. Sync完成后在Gradle中会生成如下目录结构。

在这里插入图片描述

  1. 若你的Studio中没有,可能是未打开相应的开关,找到Settings中Experimenta,将如下图所示勾上即可。
    在这里插入图片描述

  2. 在一切准备完成后,双击publish,成功后即可生成maven仓所有的所有文件。
    在这里插入图片描述

  3. 生成的文件结构如下图所示。
    在这里插入图片描述

  4. 在一个新的安卓应用项目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" ) }
    }
}

在这里插入图片描述

  1. 在app下的build.gradle文件中导入依赖。
dependencies {
    implementation "com.example.navtest:navtest:1.0.0"
}
  1. 之后点击Sync Now即可拉取对应的aar包了,在Gradle包中可以找到对应的包。
    在这里插入图片描述

  2. 如果想实现远程Maven仓,可参考:安卓使用Gitee搭建远程Maven仓


原文地址:https://blog.csdn.net/weixin_41119184/article/details/145208361

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!