
前言
打算利用公司已有的Gitlab代碼管理庫。實現maven倉庫的搭建。
PS:如果公司服務器資源充足,采用Nexus 搭建一個Maven庫。這樣整個Maven庫的管理會更合理和有效一些。
目標
結束aar和jar文件亂發的歷史,使用implementation 引用。
如果在Glilab將項目配置為公共public權限。那么外部其他客戶也可以使用maven倉庫了。
實現步驟
1、打包配置
Android Studio 環境版本
Android Studio 4.2.1
build:gradle:4.2.1
將需要打包成jar或者aar的項目配置maven 腳本。
新建一個:gitlab.gradle文件 和項目build.gradle同一級目錄下創建。
并添加下面代碼:
apply plugin: 'maven'
uploadArchives {
repositories.mavenDeployer {
def mavenDirPath = file('../maven') // 相對地址。 編譯后的代碼將會存在父目錄的maven文件夾下。
def mavenDirPath = file('D:\\appmaven') //絕對路徑,編譯后的代碼將會存在 D盤的appmaven文件夾下。
repository(url: "file://${mavenDirPath.absolutePath}")
pom.project {
groupId "cn.zinyan.demo" // 包名
artifactId "Key" // module的名字
version '1.1.1'// 版本號
//配置完畢后,包名決定地址中的 第一項,artifactId 決定了第二項,version 決定了第三項版本號
//implementation 'cn.zinyan.demo:Key:1.1.1'
}
}
}
// 如果不想生成 javadoc.jar 和 sources.jar 庫以下代碼可以省略
def sourceDirs
if (project.hasProperty("android")) {
sourceDirs = android.sourceSets.main.java.srcDirs
}else {
sourceDirs = sourceSets.main.java.srcDirs
}
task javadocs(type: Javadoc) {
source = sourceDirs
}
//生成doc
task javadocsJar(type: Jar) {
// classifier='javadoc' //老版本寫法, 現在已經過期了。建議使用下面的
archiveClassifier.set('javadoc')
from javadocs.destinationDir
}
//生成sources
task sourcesJar(type: Jar) {
// classifier='sources'//老版本寫法, 現在已經過期了。建議使用下面的
archiveClassifier.set('sources')
from sourceDirs
}
artifacts {
archives javadocsJar
archives sourcesJar
}
在build.gradle 文件中引用gitlab.gradle 文件。
添加方式:apply from: 'gitlab.gradle'
然后我們可以在右側的Gradle面板的Tasks->upload->uploadArchives 指令
點擊執行該指令,就可以在本地生成相應編譯后的代碼了。
上面的指令直接支持:aar庫和jar庫的編譯。 系統會根據你的lib的類型。自動打相應的文件。
2、上傳代碼
直接通過gi將執行編譯后的全部aar,和jar等數據上傳就可以了。
包括aven-metadata.xml等文件,pom等文件,javadoc等文件,sources等文件。
3、使用gitlab庫的maven
(1)maven是公共的
如果你的GitLab上的maven倉庫項目是公共的。那么maven 就是公共的
其他人調用,只需要該maven庫的地址即可
allprojects {
repositories {
maven {
url "https://你的倉庫的地址+直接到項目名/分支/"
}
}
這個url鏈接:gitlab 上通常情況下 。
公共項目的路徑是這樣的 ??https://域名地址/Group名稱/項目名/-/raw/分支名/。??
如果該項目是你自己的。而不是組里面的。那么Group名稱就得換成你的用戶名了。
有一個很簡單的方法。
訪問你的gitLab庫,打開我們提交的一個xml文件。例如pop.xml文件。
在瀏覽器中,從https開始一直到你的包名稱截止,這一段地址就是我們需要配置到maven上的url地址。后面的包名路徑,IDEA會自動幫我們補上并更新了
(2)maven是私有的
如果你的GitLab 是私有的。只想部分人可以使用。
需要在maven 地址導入的位置,添加相應的訪問賬號和Token了。
可以參考文章 利用Gitlab倉庫搭建私有Maven倉庫 - 知乎 (zhihu.com)
4、使用gitee庫的樣例
例如我在gitee上搭建的一個簡單的maven倉庫。
allprojects {
repositories {
maven{
url 'https://gitee.com/zinyan/maven/raw/master/'
}
}
implementation 'com.zinyan.util:general:1.0.0'