*同步maven仓库
根目录的 build.gradle里面的
allprojects{
repositoriese{
...
}
}
中添加,需要替换...为你需要仓库,可以有多个maven仓库,格式如:maven{ url 'http://mavenhost/path...'},将url填写即可,如我的maven地址是http://localhost:8081/nexus/content/repositories/public-maven-demo/,则需要如下配置。
allprojects {
repositories {
jcenter()
maven{ url 'http://localhost:8081/nexus/content/repositories/public-maven-demo/'}
...
}
}
然后在工程的moudel中的build.gradle中添加依赖即可。
*利用android studio上传aar到maven仓库
a.首先使用nexus搭建一个本地maven仓库
b.或者使用远程的的maven仓库
c.或者已经有了maven仓库的url
这样你就有了一个可以发布的maven仓库的url,然后就可以进行配置了,要发布的是android的library,所以,只需要配置这个moudel下的build.gradle就可以了。首先在build.gradle最上面加入插件
apply plugin: 'maven'
然后在文件的最先加入要上传的一些参数和设置。
uploadArchives {
repositories {
mavenDeployer {
repository(url: MAVEN_REPO_RELEASE_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
version '1.0.0'
artifactId 'xxx'
groupId 'com.xxx.xxx'
packaging TYPE
description DESCRIPTION
}
}
}
}
artifacts {
archives file('xxx.aar')
}
MAVEN_REPO_RELEASE_URL替换成你要发布的maven仓库的url, NEXUS_USERNAME和 NEXUS_USERNAME 分别替换成仓库的用户名和密码,然后在pom.project设置你的groupId等信息。在 artifacts的域中把xxx.aar替换成和pom.project中的 artifactId的xxx名称一样即可,例如:pom.project中的artifactId的是testlib,则在artifacts的域中把xxx.aar替换成testlib.aar。
接下来看你这个moudel中的gradle中会有upload,下面有 uploadArchives ,然后点击 uploadArchives 即可,效果如下图:
成功之后会显示BUILD SUCCESSFUL,这样,就完成了一个android的library上传的maven仓库的步骤。
注意:当没有上传到maven仓库的时候如果就引用仓库中不存在的依赖,会出现编译不通过的问题。
首先在工程的 根目录(不是moudel)下的build.gradle按照 同步maven仓库来设置maven的url,然后在需要依赖这个aar的moudel下面的build.gradle中的 dependencies中添加依赖。
例如:发布是的配置是version '1.0.0', artifactId 'testlib', groupId 'com.xxx.test',那么在dependencies中的依赖如下:
compile 'com.xxx.test:testlib:1.0.0'
至此,从android studio中完成了同步maven的aar,以及发布本地的moudel的aar到maven仓库。