Android 使用Nexus搭建Maven-上传使用aar

一、相关知识点

1.什么是Maven?

Maven 是一个项目管理和自动构建工具。Maven 包集中存放的地方,就是 Maven 仓库。这些仓库,可以是放在本地,也可以放在某个远程服务器上。 可以是私有仓库,也可以是公开的。
在Android上的使用方式如下:


allprojects {
    repositories {
        mavenCentral();
        jcenter()
        maven {
            url 'file:///Users/my-user-name/Documents/Android/repo/'
        }
        maven {
            url 'http://localhost:8081/nexus/content/repositories/releases/'
        }
    }
}

2.什么是Gradle?

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持mavenIvy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovybuild脚本使用Groovy编写。
Android支持的Maven仓库:

  • mavenCentral 是最早的 maven 中央仓库
  • jcenter 是 Android Studio 0.8 版本起的默认 maven 中央仓库
  • 本机的仓库
  • 部署在内网服务器的私有仓库

3.Nexus仓库

仓库类型:

  • hosted(宿主仓库):用来部署自己,第三方或者公共仓库的构件
  • proxy(代理仓库):代理远程仓库
  • virtual(虚拟仓库):默认提供了一个 Central M1虚拟仓库 用来将maven 2适配为maven 1
  • group(仓库组):统一管理多个仓库

Public Repositories: 仓库组

  • 3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
  • Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
  • Central: 用来代理maven中央仓库中发布版本构件的仓库
  • Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
  • Codehaus Snapshots: 用来代理CodehausMaven仓库的快照版本构件的仓库
  • Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
  • Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库

4.什么是AAR?

AAR文件是Google为Android开发所设计的一种library格式,全名为Android Archive Library, 与Java Jar Library不同的地方是AAR除了java code之外也包含res,也就是一些图片、文字等 资源文件。会设计形式的类别库是因为Google在Android SDK tool r14之后开始支持Library Project的开发方式,这种Library Project可以说是Android APP的半成品,其目标并不是制作成APK来执行,而是提供现成的View/Activiy等一些资源给其他开发者使用。而 AAR正是这种Library Project编译后的压缩包,压缩后只需传递单一文件即可分享,可以说是相当方便。

二、Maven库搭建(Nexus服务)

在本地搭建Maven库服务,用来上传常用代码库,便捷Android 项目开发使用

1.下载Nexus

打开 https://help.sonatype.com/
Android 使用Nexus搭建Maven-上传使用aar_第1张图片

以下是对应系统下载相应文件
Android 使用Nexus搭建Maven-上传使用aar_第2张图片

2.解压并运行nexus

2.1 通过命令行解压nexus-3.38.1-01-mac.tgz

tar xvzf nexus-3.38.1-01-mac.tgz

2.2 运行nexus,默认启动8081端口

./nexus run
./nexus start(首次无法启动)

2.3 验证是否运行成功

打开 http://127.0.0.1:8081/

Android 使用Nexus搭建Maven-上传使用aar_第3张图片

3.登录并修改默认密码

登录(首次登录需要登录admin用户,密码在 /sonatype-work/nexus3/admin.password 中)
登录成功后会提示修改密码
Android 使用Nexus搭建Maven-上传使用aar_第4张图片

4.新建用户

Android 使用Nexus搭建Maven-上传使用aar_第5张图片

Android 使用Nexus搭建Maven-上传使用aar_第6张图片

5.新建仓库

Android 使用Nexus搭建Maven-上传使用aar_第7张图片

Android 使用Nexus搭建Maven-上传使用aar_第8张图片

Android 使用Nexus搭建Maven-上传使用aar_第9张图片

6.在Android Studio中上传aar包

6.1引用本地maven库

allprojects {
    repositories {
        mavenLocal()
    }
}

6.2 上传aar到maven库中

uploadArchives {
    repositories.mavenDeployer{
        repository(url:"http://127.0.0.1:8081/repository/com.kangxiao.libs/"){
            authentication(userName:"kangxiao",password:"kang123456")
        }
        pom.version="0.0.1"
        pom.artifactId="kxlib"
        pom.groupId="com.kangxiao"
    }
}

引入maven插件

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'maven'
}

7.在项目中引用库

注意事项:如果没有打开匿名访问的话,需要配置帐号密码
如果允许匿名访问的话,不需要配置帐号密码

在app下build.gradle引用依赖

好了,到这就可以用了。

你可能感兴趣的:(Android,maven,android,android,studio)