前言
在日常工作及項目迭代過程中顶捷,一定有不少同學自己寫了一些框架性的東西蝶念,或者一些好用的工具友绝,總之就是能復用的代碼堤尾。然而也有不少同學為了復用這些代碼不得不復制粘貼到不同項目中,這樣相同的功能出現(xiàn)了多份代碼迁客,在后期的維護過程中帶來極度不便郭宝,更新一次SDK要口口傳送多次且無法按版本迭代和降級。為了解決這一系列問題掷漱,我們不妨嘗試將這些代碼部署到maven倉庫粘室,一處編寫多處使用。
Nexus 介紹
Sonatype Nexus 是一個常見的搭建本地私有倉庫的工具卜范,詳情進入官網查看https://www.sonatype.com/download-oss-sonatype
搭建私有Nexus倉庫
下載 Nexus 安裝包
https://www.sonatype.com/download-oss-sonatype
解壓 Nexus 文件
## 啟動 Nexus 服務
nexus-3.15.2-01/bin/nexus start
控制臺輸出如下:
初始賬戶:admin
初始密碼:admin123
Android Lib 發(fā)布私有倉庫
項目配置
在項目根目錄下 gradle.properties 中添加配置:
倉庫地址如下:
# Maven倉庫的URL
MAVEN_REPO_RELEASE_URL=http://localhost:8081/repository/maven-releases/
# 對應maven的GroupId的值
GROUP=maven-releases
# 登錄nexus ossde的用戶名
NEXUS_USERNAME=admin
#登錄nexus oss的密碼
NEXUS_PASSWORD=admin123
# groupid
GROUP_ID=cn.soulapp.android
# type
TYPE=aar
# description
DESCRIPTION=Soul Pay SDK By Android ~
在lib的build.gradle中添加:
// 添加maven依賴
apply plugin: 'maven'
...
// 配置上傳指令
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: MAVEN_REPO_RELEASE_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
version '1.0.3'
artifactId 'AndroidPaySDK'
groupId GROUP_ID
packaging TYPE
description DESCRIPTION
}
}
}
}
上傳 library
執(zhí)行指令:
./gradlew uploadArchives
等待發(fā)布成功~
使用 library
在根目錄 build.gradle 加入
buildscript {
repositories {
google()
jcenter()
// 配置私有倉庫地址
maven {
url 'http://localhost:8081/repository/SoulApp/'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url 'http://localhost:8081/repository/SoulApp/'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在依賴此 library 項目中引用
api 'cn.soulapp.android:AndroidPaySDK:1.0.3@aar'
結語
至此海雪,基于 Nexus 搭建私有 Maven 倉庫已完成锦爵,祝您工作愉快~