当前位置: 首页 > article >正文

安卓本地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仓


http://www.kler.cn/a/513746.html

相关文章:

  • (三)线性代数之二阶和三阶行列式详解
  • Swift语言的数据结构
  • 迷宫1.2
  • 【基于无线电的数据通信链】Link 11 仿真测试
  • 逆波兰表达式求值(力扣150)
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(五)-数的三次方根、机器人跳跃问题、四平方和
  • 51c~SLAM~合集1
  • 数据结构学习记录-队列
  • STM32补充——IAP
  • 滑动窗口例题讲解
  • 缓存为什么比主存快?
  • 【MySQL】存储引擎有哪些?区别是什么?
  • CTTSHOW-WEB入门-爆破21-24
  • cnpm是什么鬼?
  • 视频m3u8形式播放 -- python and html
  • Python新春烟花
  • opencv-FindHomography接口-C语言实现
  • 靠右行驶数学建模分析(2014MCM美赛A题)
  • 日本IT|集成测试(結合テスト)的含义
  • office 2019 关闭word窗口后卡死未响应
  • 全新推理模型 DeepSeek-R1 问世,全面对标 OpenAI o1
  • “深入浅出”系列之C++:(10)nlohmann Json库
  • 【gopher的java学习笔记】Java中Mapper与Entity的关系详解
  • 虚拟mock
  • 学Python的人…
  • 【Spring Boot】Spring AOP动态代理,以及静态代理