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

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 作为依赖库 ;

dependencies {
    
    
    implementation project (':mylibrary')
    implementation project (path: ':mylibrary', configuration: 'debug')
}

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

@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) 函数 , 原型如下 :

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 名称 和 后缀名 ;

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 ;

<?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>

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/125035855