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工程
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上傳完畢,應該如何使用呢?
- 打開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