Mac 下 Android 發佈項目到私服Nexus倉庫

Mac 下 Android 發佈項目到私服Nexus倉庫

– 作者:魚憶七秒 時間:2019年04月15日18:15:15

之前瞭解過一點,但是沒操作過,我看有的人在GitHub上發佈自己的私有庫,然後提供給其他人使用,這個我試了一下,還沒搞清楚什麼問題,不知道爲什麼使用不了。希望看到本文的人,知道的可以告訴我一下,謝謝哦,下面我要開始寫我操作的步驟了;

1.下載Nexus

從nexus官網下載;http://www.sonatype.org/nexus/go 下載對應版本即可
通過brew install nexus 命令下載。沒安裝的可以去安裝個brew命令;( https://brew.sh/ ) brew官網進行安裝;
1.在終端中輸入 brew install nexus 安裝完成後
2.啓動nexus 終端命令: brew services start nexus
3.這樣就已經啓動了,現在我們輸入地址http://127.0.0.1:8081/nexus 端口默認是8081 用戶名密碼默認是:admin/admin123
在這裏插入圖片描述
2.創建Android工程,並且創建lib依賴包

1.創建一個android工程
d62515da7d5bfa0f8a14397435d4b518.png
2.創建一個model
在這裏插入圖片描述
3.修改model的名字
在這裏插入圖片描述
4.在model中創建一個抽象的activity類
在這裏插入圖片描述
完整的項目目錄結構
在這裏插入圖片描述

準備工作基本已經完成,下面是gradle的配置

3.lib下的gradle配置

在根部添加
apply plugin:‘maven’
在最下面配置如下內容:

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: uri("http://localhost:8081/nexus/content/repositories/releases/")) {
                authentication(userName:'admin',password:'admin123')
            }
            pom.groupId = "com.lib.maven" //隨便寫,但是一般爲包名
            pom.artifactId = "maven-demo" //隨便寫,但是一般爲lib名字
            pom.version = "1.0.0" //隨便寫,有點規律好嗎?
            pom.project {
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
            }
        }
    }
}

4.如何上傳

1.配置一下nexus的文件哦
在這裏插入圖片描述
2.按照圖示順序操作
在這裏插入圖片描述
執行完畢後,即可看到如下圖所示內容:
在這裏插入圖片描述
5.本地的nexus上傳完畢,應該如何使用呢?

  1. 打開Android 工程的root gradle文件,添加內容;完整結構如下:
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "http://localhost:8081/nexus/content/repositories/releases"
        }
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

2.在app項目下的gradle文件中添加如下內容

dependencies {
    ......忽略
    implementation 'com.lib.maven:maven-demo:1.0.0'
}

3.爲了驗證是否已經可以使用,我們將項目中setting.gradle中的’libdemo’去除
在這裏插入圖片描述
4.在app的MainActivity中繼承BaseActivity這個類,如下圖所示:
在這裏插入圖片描述
總結
1.如上內容是在本地配置的一個nexus的代碼倉庫,這個也可以更改到服務器上,原理一樣;
2.如果只想本地配置,不需要nexus也可以的,我直接展示代碼,不做具體步驟;

	A.lib的gradle中的內容做如下修改:
    uploadArchives {
        repositories.mavenDeployer {
        repository(url: uri('../repository'))
        pom.project {
            groupId "com.lib.maven" // 可以隨意取,一般取包名
            artifactId "maven-demo" // 可以隨意取,一般取庫的名字
            version "1.0.0" // 版本號
        }
    }
}
	 B: 使用上,在root的gradle中修改上面的maven 爲:
     maven {
          url uri('../repository')
     }

3.致此文章完畢,有疑問的可以留言
GitHub:https://github.com/softwareboy92/maven-demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章