實(shí)戰(zhàn)中maven私服接入:
第三方lib庫的上傳操作
使用as創(chuàng)建一個(gè)新的項(xiàng)目,在新建項(xiàng)目下創(chuàng)建一個(gè)lib庫,命名為:lib_vedio:并在lib_vedio
的build.gradle
工程文件下面,引入maven
庫:
實(shí)現(xiàn)uploadArchives
的task方法:這個(gè)方法用于上傳lib庫:
plugins {
id 'com.android.library'
id 'maven'
}
//上傳的類庫名稱
def _artifactId = this.getName()
//類庫版本
def pomVersionName = '1.0.1'
def pomName = this.getName()
//類庫描述
def pomDescription = 'the vedio library for all project'
uploadArchives {
repositories {
mavenDeployer {
repository(url:NEXUS_REPOSITORY_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
name pomName
version pomVersionName
description pomDescription
artifactId _artifactId
groupId POM_GROUPID
packaging POM_PACKAGING
}
}
}
}
里面一些變量是在gradle.properties中設(shè)置的全局變量:
NEXUS_REPOSITORY_URL=http://localhost:8081/repository/anna_release/
POM_GROUPID=com.anna.android
POM_PACKAGING=aar
NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123456
設(shè)置好后,執(zhí)行uploadArchives
任務(wù),這個(gè)時(shí)候我們本地的lib_vedio
庫就會(huì)上傳到我們之前搭建的maven
私服上:
這里因?yàn)槲覀兩蟼髁藘蓚€(gè)版本1.0.0和1.0.1
切記:
如果當(dāng)前倉庫選擇的是release屬性:則每次上傳的版本不能一致,需要在原版本基礎(chǔ)上增加
如果選擇的是snapshot屬性:則可以在不增加版本號(hào)的前提下,修改同一版本的代碼并上傳。
maven私服倉庫的接入:
我們?cè)陧?xiàng)目的build.gradle
文件中引入maven庫:
buildscript {
repositories {
google()
jcenter()
maven {
url = 'http://localhost:8081/repository/anna_release/'
credentials {
username = 'admin'
password = 'admin123456'
}
}
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.1"
// 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/repository/anna_release/'
credentials {
username = 'admin'
password = 'admin123456'
}
}
}
}
并在app模塊引入lib庫文件:
implementation 'com.anna.android:lib_video:1.0.1'
這樣就可以在我們項(xiàng)目中愉快使用類庫啦。
3.如何發(fā)布到Github倉庫
如果我們需要開源我們的代碼就需要將倉庫發(fā)布到公共倉庫中:
步驟1:在項(xiàng)目級(jí)build.gradle
中設(shè)置
buildscript {
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
}
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
步驟2:在模塊級(jí)build.gradle
設(shè)置如下
apply plugin: 'com.github.dcendents.android-maven'
group = 'com.github.xxx' // xxx為github 的用戶名
步驟3:將源碼push
到github
上
步驟4:在github上創(chuàng)建 Release Tag
release tag.png
步驟5:打開https://jitpack.io 網(wǎng)址, 點(diǎn)擊look up
jitpack.png
然后會(huì)顯示出對(duì)應(yīng)的編譯版本信息:
紅色代表編譯失敗
藍(lán)色代表編譯成功
可通過日志查看編譯錯(cuò)誤原因:
編譯失敗信息.png
步驟6:類庫引入:在項(xiàng)目級(jí) build.gradle
聲明遠(yuǎn)程倉庫,在模塊級(jí) build.gradle
中依賴類庫。
項(xiàng)目級(jí)build.gradle
buildscript {
repositories {
...
maven { url 'https://jitpack.io' }
}
dependencies {
...
classpath 'com.github.ByteYuhb.a_gradle_plugin_sample:uploadversion:1.0.3'
}
}
這里我們上傳的是一個(gè)gradle插件庫,所以需要在buildscript中的dependencies聲明插件版本信息
關(guān)于Gradle自定義插件的編寫可以參考這篇文章:
Gradle筑基篇(五)-Gradle自定義插件實(shí)戰(zhàn)
模塊級(jí)build.gradle
apply plugin: 'com.yuhb.upload'
versionInfo {
versionName = '1.0.0'
versionCode = 1
versionUpdateInfo = '當(dāng)前是第一個(gè)版本:初始apk'
}
引入插件的group和擴(kuò)展信息
結(jié)果
:
在編譯期:打印出了Gradle插件中的信息:
Task :app:uploadTask
name:1.0.0 code:1 info:當(dāng)前是第一個(gè)版本:初始apk
4.指定發(fā)布二進(jìn)制文件:
使用新版 Maven 插件
,可以直接以指定二進(jìn)制文件的方式發(fā)布組件。例如:
apply plugin: 'maven-publish'
publishing {
publications {
[任務(wù)名](MavenPublication) {
groupId MAVEN_GROUP_ID
artifactId MAVEN_ARTIFACTID
version MAVEN_VERSION
artifact([文件路徑])
}
}
repositories {
maven {
// 發(fā)布倉庫路徑
url MAVEN_RELEASE_URL
}
}
}
-
開發(fā)
+關(guān)注
關(guān)注
0文章
366瀏覽量
40811 -
maven
+關(guān)注
關(guān)注
0文章
30瀏覽量
3698 -
gradle
+關(guān)注
關(guān)注
0文章
26瀏覽量
699
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論