Android 本地依赖 aar 管理(工程内建 maven 仓库)

简介: 采用在项目内创建 maven 仓库的方式避免因直接依赖本地 aar 的模块无法打包成 aar 的问题以及依赖传递问题

aar添加到内建仓库使用脚本 publishlocalmaven.sh:

#!/bin/bash
##############################使用方式##############################
# 需安装 shyaml https://github.com/0k/shyaml
HELP="
用法:

1. 将要添加到仓库的 aar 包放在 lib_aar 文件夹下;

2. 配置 config.yaml, 格式:
groupId: com.thirdparty.aar
artifacts:
 -
   file: ambilWarna.aar
   artifactId: ambilWarna
   version: 1.0.0

3. 运行 publishlocalmaven.sh 脚本:
./publishlocalmaven.sh

4. 添加成功后将原始 aar 文件删除;

5. 需依赖 aar 的模块引用:
implementation 'com.thirdparty.aar:ambilWarna:1.0.0'

"


CONFIG=config.yaml   # 配置文件

if [ -n $CONFIG  ]; then

  current_dir=$(cd `dirname $0`;pwd)    # 脚本所在目录

  config_file=${current_dir}/${CONFIG}    # 配置文件全路径

  groupId=$(cat $config_file | shyaml get-value groupId)

  echo groupId: $groupId

  j=$(cat $config_file | shyaml get-length artifacts)

  for ((i=0; i<=$j-1; i++))
  do
    file=$current_dir/$(cat $config_file | shyaml get-value artifacts.$i.file)
    artifactId=$(cat $config_file | shyaml get-value artifacts.$i.artifactId)
    version=$(cat $config_file | shyaml get-value artifacts.$i.version)
    if [ -f $file ];then
      mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
      -Dfile=$file \
      -DgroupId=$groupId -DartifactId=$artifactId \
      -Dversion=$version -Dpackaging=aar \
      -DlocalRepositoryPath=$current_dir
    else
      echo "文件不存在!!! -> [$file]"
    fi
  done

fi

配置文件 config.yaml:

groupId: com.thirdparty.aar
artifacts:
 -
   file: ambilWarna.aar
   artifactId: ambilWarna
   version: 1.0.0

使用方式

1. 主工程的 build.gradle 中添加项目内建仓库位置

repositories {
    maven {
        // 把 lib_aar 当成本地仓库存放离线使用的 aar
        url("file://${project.rootDir.absolutePath}/lib_aar")
    }
}

2. 将要添加到仓库的 aar 包(本地依赖包) 放在 lib_aar 文件夹下;

project
    |__ app
    |__ lib_aar                    # 内建仓库位置
        |__ com.thirdparty.aar     # 添加到内建仓库的仓库 aar 依赖
            |__ ambilWarna
                |__ 1.0.0
                    |__ ambilWarna-1.0.0.aar
                    |__ ambilWarna-1.0.0.pom
                |__ maven-metadata-local.xml
        |__ config.yaml            # 添加本地依赖 aar 到内建仓库的仓库的脚本使用的配置文件
        |__ publishlocalmaven.sh   # 添加本地依赖 aar 到内建仓库的仓库的脚本
        |__ ambilWarna.aar         # 要添加到内建仓库的本地依赖 aar, 添加完成后删除
    |__ build.gradle

3. 配置 config.yaml, 格式:

groupId: com.thirdparty.aar       # 添加依赖的 groupId, 不需要修改
artifacts:
 -
  file: ambilWarna.aar            # 要添加的本地依赖 aar 文件名, 文件要放在脚本当前目录下
  artifactId: ambilWarna          # 要添加的本地依赖 aar 添加后的 artifactId
  version: 1.0.0                  # 要添加的本地依赖 aar 添加后的 version

4. 运行 publishlocalmaven.sh 脚本:

安装 shyaml https://github.com/0k/shyaml

cd lib_aar

chmod a+x publishlocalmaven.sh

./publishlocalmaven.sh

5. 添加成功后将原始 aar 文件删除;

6. 需依赖 aar 的模块 build.gradle 中引用内建仓库的 aar:

dependencies {
    implementation 'com.thirdparty.aar:ambilWarna:1.0.0'
}
相关文章
|
2月前
|
缓存 架构师 Java
Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
本文介绍了Maven的核心功能和依赖管理技巧。Maven是基于项目对象模型(POM)的构建工具,具备跨平台、标准化、自动化等特性。其三大核心功能为依赖管理、仓库管理和项目构建。依赖管理通过pom.xml文件引入第三方组件并自动下载;仓库管理涉及中央仓库、私服和本地仓库;项目构建则通过生命周期管理编译、测试、打包等流程。文章还详细讲解了依赖冲突的解决方法,包括默认规则、手工排除和版本指定等策略。
|
3月前
|
缓存 Java Maven
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法!在处理Maven项目问题时,首先检查Maven配置是否正确。接着通过“File--Invalidata Caches”清除IDEA缓存并重启。使用Maven命令`mvn dependency:purge-local-repository`和`mvn dependency:resolve`清除本地依赖缓存。最后,在Terminal中输入`mvn clean install`完成构建。
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
|
7月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
4月前
|
Java Maven
maven打瘦包,且只打入部分想打入的依赖瘦包
maven打瘦包,且只打入部分想打入的依赖瘦包 设计 工程结构分析 环境管理 城市资源 安全工程 工程管理
113 10
|
5月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
5月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
1181 3
|
5月前
|
Java Maven
Maven 依赖管理
Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法。
286 5
|
6月前
|
Java Maven
Maven 引入外部依赖
如果我们需要引入第三方库文件到项目,该怎么操作呢?
106 5
|
7月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
1020 3
|
7月前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
425 1

热门文章

最新文章

推荐镜像

更多