AndroidStudio之模块库上传与引用

时间:2022-05-21 15:53:10

主要内容如下

  • 上传到maven仓库
  • 引用maven仓库的
  • 自己搭建maven仓库,及其它几种包管理形式
  • 附录

闲话

仓库管理,需要了解一些基本的概念,远程仓库 Gradle项目管理 Gradle和Maven的比较 等等

1,上传到maven仓库

上传到maven仓库,我们以Android的库模块最终以aar形式上传到maven仓库为例,贴代码:
在需要uoload的模块build.gradle做如下更改:

apply plugin: 'maven'

uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}

首行的功能是为了使用maven插件,有点类似于java编程中导入包的意味,只有使用了maven插件,后续才可以使用maven插件提供的方法。

下面

 repository(url: "file://localhost/tmp/myRepo/")    

是定义我们仓库的地址,这里可以是自己搭建的仓库,本地文件系统,公共的maven仓库等等。有些仓库需要认证,需要我们提供密码,类似于下面:

uploadArchives {
repositories {
mavenDeployer {
repository(url:"http://localhost:8081/repository/fish/") {
authentication(userName:'admin',password:'admin123')
}
pom.groupId = 'com.acmes'
pom.version = '2.1'
pom.project {
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}
}
}

上面的代码片段可以看到,我们还可以更改自己的groupId等信息,具体参考Gradle的UserGuide
等我们配置完毕之后,同步一下gradle,如果没有错误,在相应模块的AndroidStudio右侧的gradle的task栏目,就会出现一个upload的文件夹,路径类似于

:yourmodulename:upload

AndroidStudio之模块库上传与引用

双击即可

上传之后,在下面目录文件可以看到自己maven的配置信息,在引用的时候要保证一一对应:
AndroidStudio之模块库上传与引用

2,引用maven仓库

引用maven仓库比较简单,需要更改工程根目录的build.gradle和引用模块的build.gradle,见下面截图的代码:
工程根目录build.gradle加入自己的仓库:
AndroidStudio之模块库上传与引用
引用模块的build.gradle:
AndroidStudio之模块库上传与引用

格式如下:

groupId:artifactId:version

3,自己搭建maven仓库

为了更方便观察整个过程,我们可以自己搭建一个maven仓库,开源的仓库很多,我们以
Nexus Repository Manager
为例,可以自己去尝试下。

除了在线maven仓库,我们甚至可以以文件系统来管理我们的仓库,我们假设根目录有一个localmaven的本地仓库:
AndroidStudio之模块库上传与引用

上传的时候,如下配置:

uploadArchives {
repositories {
mavenDeployer {
repository(url:uri('../localmaven')) //custom as you wish
pom.groupId = 'com.acmes'
pom.version = '3.0'
}
}

AndroidStudio之模块库上传与引用

使用的时候,和线上一致,除了maven仓库地址格式不同:

工程根目录build.gradle:
AndroidStudio之模块库上传与引用

引用模块的build.gradle:
AndroidStudio之模块库上传与引用

4,附录

Maven与Gardle对比
搭建自己的maven仓库
Gradle教程