Android 搭建私有maven倉庫及上傳項目

前言

在日常工作及項目迭代過程中,一定有不少同學自己寫了一些框架性的東西,或者一些好用的工具,總之就是能復用的代碼。然而也有不少同學為了復用這些代碼不得不復制粘貼到不同項目中,這樣相同的功能出現了多份代碼,在后期的維護過程中帶來極度不便,更新一次SDK要口口傳送多次且無法按版本迭代和降級。為了解決這一系列問題,我們不妨嘗試將這些代碼部署到maven倉庫,一處編寫多處使用。

Nexus 介紹

Sonatype Nexus 是一個常見的搭建本地私有倉庫的工具,詳情進入官網查看https://www.sonatype.com/download-oss-sonatype

搭建私有Nexus倉庫

下載 Nexus 安裝包

https://www.sonatype.com/download-oss-sonatype

下載 Nexus

解壓 Nexus 文件

安裝 Nexus

## 啟動 Nexus 服務

nexus-3.15.2-01/bin/nexus start

控制臺輸出如下:

啟動 Nexus 服務
到此 Nexus 服務已經啟動,訪問 http://localhost:8081 即可訪問 Nexus 私服,

初始賬戶:admin
初始密碼:admin123
Nexus 服務器

Android Lib 發布私有倉庫

項目配置

在項目根目錄下 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

執行指令:

./gradlew uploadArchives

等待發布成功~

使用 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 倉庫已完成,祝您工作愉快~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。