主要内容如下
- 上传到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
双击即可
上传之后,在下面目录文件可以看到自己maven的配置信息,在引用的时候要保证一一对应:
2,引用maven仓库
引用maven仓库比较简单,需要更改工程根目录的build.gradle和引用模块的build.gradle,见下面截图的代码:
工程根目录build.gradle加入自己的仓库:
引用模块的build.gradle:
格式如下:
groupId:artifactId:version
3,自己搭建maven仓库
为了更方便观察整个过程,我们可以自己搭建一个maven仓库,开源的仓库很多,我们以
Nexus Repository Manager为例,可以自己去尝试下。
除了在线maven仓库,我们甚至可以以文件系统来管理我们的仓库,我们假设根目录有一个localmaven的本地仓库:
上传的时候,如下配置:
uploadArchives {
repositories {
mavenDeployer {
repository(url:uri('../localmaven')) //custom as you wish
pom.groupId = 'com.acmes'
pom.version = '3.0'
}
}
使用的时候,和线上一致,除了maven仓库地址格式不同:
工程根目录build.gradle:
引用模块的build.gradle: