最近因为公司项目需要,多个组开发的项目依赖于一些公共的Library,正好公司也有Nexus仓库,于是就学习下如何如何将自己的Library上传到Nexus仓库供大家使用。
1. 发布Library到私服
先展示下我建立的Project的目录结果
app目录大家最熟悉了,是AS默认的主module的名字,utils目录就是我新建立的library module。
接下来我们来配置maven的上传
配置pom参数
项目根目录下的gradle.property中添加如下pom参数
POM_NAME=utils
POM_VERSION=1.0.1
POM_ARTIFACTID=utils
POM_GROUPID=com.leplay.android
POM_PACKAGING=aar
POM_DESCRIPTION=utils for Android
配置Nexus参数
因为Nexus相关参数是固定的,包含仓库地址、用户名和密码,我们把这些参数写到gradle的Global配置中,目录是C:\Users\\(用户名)\\.gradle\gradle.property
NEXUS_USERNAME=username
NEXUS_PASSWORD=password
NEXUS_REPOSITORY_URL=http://xxx/nexus/content/repositories/xxx/
引入upload脚本
在library的build.gradle文件末尾加上如下引用:
apply from: 'http://jasonzhang1986.github.io/nexus_upload.gradle'
这个nexus_upload.gradle脚本是参考大神的脚本修改,包含生成java-source和java-doc,具体实现细节可以进入看脚本代码。
uploadArchives
编译并上传library,双击右侧gradle task中的uploadArchives
等待一会出现Success字样,证明已经上传成功
最后我们去Nexus上查看下,确实上传成功了
使用Nexus私服上的Library
首先,要在项目的build.gradle里面声明私服的地址
然后就是我们最熟悉的在module的build.gradle文件中添加依赖
compile 'com.leplay.android:utils:1.0.1'