[Android开发笔记]私有Maven仓库使用指南

简介

我们在使用Android Studio开发安卓项目时,会引用到官方 sdk 或者他人的库,方法都是在 module 的 build.gradle文件中添加如下代码:

implementation 'com.android.support:appcompat-v7:28.0.0'

一行代码就可以把我们想使用的库引入到了项目中。然而一般情况下我们要想引入自己开发的库,则是将整个 module 导入项目,并在需要引用该module的module的build.gradle文件中添加如下代码:

implementation project(':lib_utils')

如果项目较大,多人在同一个项目目录下编写代码既不优雅也不安全。

假如我们也只需要在 build.gradle 文件中使用一行 implementation 代码就能实现引入自己或同事的 module 模块,而不需要关心这个 module 放在哪里,那岂不是很开心。

发布

搭建Maven私服

搭建maven私服有多种方式(例如JFrog的Artifactory、sonatype社区的nexus),我们使用Nexus。

具体搭建过程不做介绍。

上传库到Nexus

添加配置信息

  • 在项目根目录local.properties添加

MAVEN_REPOSITORY_RELEASE_PATH=http://xxx.xxx.xxx.xxx:xxxx/repository/maven-releases/
PACKAGE_TYPE=aar
GROUP_ID=per.goweii
NEXUS_USERNAME=Nexus用户名
NEXUS_PASSWORD=Nexus密码
  • 在库Model的gradle.properties添加

ARTIFACT_ID=库名
VERSION_NAME=库版本号

创建上传gradle文件

  • 在项目根目录新建maven.gradle

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            def properties = new Properties()
            def inputStream = project.rootProject.file('local.properties').newDataInputStream()
            properties.load(inputStream)
            def MAVEN_REPOSITORY_RELEASE_PATH = properties.getProperty('MAVEN_REPOSITORY_RELEASE_PATH')
            def NEXUS_USERNAME = properties.getProperty('NEXUS_USERNAME')
            def NEXUS_PASSWORD = properties.getProperty('NEXUS_PASSWORD')
            def PACKAGE_TYPE = properties.getProperty('PACKAGE_TYPE')
            def GROUP_ID = properties.getProperty('GROUP_ID')

            repository(url: MAVEN_REPOSITORY_RELEASE_PATH) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            pom.project {
                packaging PACKAGE_TYPE
                groupId GROUP_ID
                artifactId ARTIFACT_ID
                version VERSION_NAME
            }
        }
    }
}
  • 在需要上传的Model的build.gradle添加

apply from:'../maven.gradle'

开始上传

确认库配置信息(尤其是版本名)无误后Sync项目,然后在Android Studio的Terminal中输入如下命令开始上传。上传成功会有SUCCESS提示。

  • Windows系统
gradlew uploadArchives
  • Mac系统
./gradlew uploadArchives

引用

添加仓库地址

在Project的build.gradle中添加仓库地址

maven { url 'MAVEN_REPOSITORY_RELEASE_PATH' }

添加库依赖

在Model的build.gradle中添加库依赖

implementation 'GROUP_ID:ARTIFACT_ID:VERSION_NAME'

你可能感兴趣的:([Android开发笔记]私有Maven仓库使用指南)