前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】Gradle 依赖管理 ⑨ ( implementation project 导入依赖库 Module | 导入aar文件作为依赖 | 先配置仓库再导入依赖 )

【Android Gradle 插件】Gradle 依赖管理 ⑨ ( implementation project 导入依赖库 Module | 导入aar文件作为依赖 | 先配置仓库再导入依赖 )

作者头像
韩曙亮
发布2023-03-30 15:54:53
1.3K0
发布2023-03-30 15:54:53
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、implementation project 引入 Android Library 类型的 Module 作为依赖库


org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

在 build.gradle#dependencies 配置中 , 使用 implementation project 引入 Android Library 类型的 Module 作为依赖库 ;

代码语言:javascript
复制
dependencies {
    implementation project (':mylibrary')
    implementation project (path: ':mylibrary', configuration: 'debug')
}

implementation project (':mylibrary') 的函数原型是 org.gradle.api.Project 配置中的 Project project(String path) 函数 , 原型如下 :

代码语言:javascript
复制
@HasInternalProtocol
public interface Project extends Comparable<Project>, ExtensionAware, PluginAware {
    /**
     * Creates a dependency on a project.
     *
     * @param notation The project notation, in one of the notations described above.
     * @return The dependency.
     */
    Dependency project(Map<String, ?> notation);
}

参考文档地址 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

implementation project (path: ':mylibrary', configuration: 'debug') 的函数原型是 org.gradle.api.artifacts.dsl.DependencyHandler 配置中的 Dependency project(Map<String, ?> notation) 函数 , 原型如下 :

代码语言:javascript
复制
public interface DependencyHandler extends ExtensionAware {
    /**
     * Creates a dependency on a project.
     *
     * @param notation The project notation, in one of the notations described above.
     * @return The dependency.
     */
    Dependency project(Map<String, ?> notation);
}

文档位置 : https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html

二、引入 aar 文件作为依赖


org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

引入 aar 文件作为依赖 , 需要为该 aar 文件指定一个仓库 , 然后才能使用该依赖库 ;

先准备一个 aar 文件 , 这里从 Y:\001_DevelopTools\002_Android_SDK\extras\android\m2repository\com\android\support\percent\22.2.0 目录中 , 拷贝出 percent-22.2.0.aar 文件 , 作为示例依赖库 ;

在这里插入图片描述
在这里插入图片描述

这是 SDK 自带的 aar 文件 , 每个 SDK 都有该文件 ;

将 percent-22.2.0.aar 文件拷贝到 app/libs 目录下 ;

在这里插入图片描述
在这里插入图片描述

在 build.gradle 中配置 repositories#flatDir , 可以将文件或目录指定为仓库 ;

然后在 dependencies 中指定 aar 名称 和 后缀名 ;

代码语言:javascript
复制
repositories {
    flatDir {
        // 将 libs 目录制定为仓库
        dir('libs')
    }
}

dependencies {
    implementation name:'percent-22.2.0', ext: 'aar'
}

一般的 aar 文件都需要指定一个 pom 文件 , 用于指定该 aar 有哪些依赖 ;

该 percent-22.2.0.aar 对应的 pom 文件 percent-22.2.0.pom 如下 : 该 aar 包依赖 com.android.support 组下的 support-v4 函数库 , 版本号为 22.2.0 ;

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.android.support</groupId>
  <artifactId>percent</artifactId>
  <version>22.2.0</version>
  <packaging>aar</packaging>
  <dependencies>
    <dependency>
      <groupId>com.android.support</groupId>
      <artifactId>support-v4</artifactId>
      <version>22.2.0</version>
      <type>aar</type>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、implementation project 引入 Android Library 类型的 Module 作为依赖库
  • 二、引入 aar 文件作为依赖
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档