實戰(zhàn)中maven私服接入:
第三方lib庫的上傳操作
使用as創(chuàng)建一個新的項目,在新建項目下創(chuàng)建一個lib庫,命名為:lib_vedio:并在lib_vedio
的build.gradle
工程文件下面,引入maven
庫:
實現uploadArchives
的task方法:這個方法用于上傳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中設置的全局變量:
NEXUS_REPOSITORY_URL=http://localhost:8081/repository/anna_release/
POM_GROUPID=com.anna.android
POM_PACKAGING=aar
NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123456
設置好后,執(zhí)行uploadArchives
任務,這個時候我們本地的lib_vedio
庫就會上傳到我們之前搭建的maven
私服上:
這里因為我們上傳了兩個版本1.0.0和1.0.1
切記:
如果當前倉庫選擇的是release屬性:則每次上傳的版本不能一致,需要在原版本基礎上增加
如果選擇的是snapshot屬性:則可以在不增加版本號的前提下,修改同一版本的代碼并上傳。
maven私服倉庫的接入:
我們在項目的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'
這樣就可以在我們項目中愉快使用類庫啦。
3.如何發(fā)布到Github倉庫
如果我們需要開源我們的代碼就需要將倉庫發(fā)布到公共倉庫中:
步驟1:在項目級build.gradle
中設置
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:在模塊級build.gradle
設置如下
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 網址, 點擊look up
jitpack.png
然后會顯示出對應的編譯版本信息:
紅色代表編譯失敗
藍色代表編譯成功
可通過日志查看編譯錯誤原因:
編譯失敗信息.png
步驟6:類庫引入:在項目級 build.gradle
聲明遠程倉庫,在模塊級 build.gradle
中依賴類庫。
項目級build.gradle
buildscript {
repositories {
...
maven { url 'https://jitpack.io' }
}
dependencies {
...
classpath 'com.github.ByteYuhb.a_gradle_plugin_sample:uploadversion:1.0.3'
}
}
這里我們上傳的是一個gradle插件庫,所以需要在buildscript中的dependencies聲明插件版本信息
關于Gradle自定義插件的編寫可以參考這篇文章:
Gradle筑基篇(五)-Gradle自定義插件實戰(zhàn)
模塊級build.gradle
apply plugin: 'com.yuhb.upload'
versionInfo {
versionName = '1.0.0'
versionCode = 1
versionUpdateInfo = '當前是第一個版本:初始apk'
}
引入插件的group和擴展信息
結果
:
在編譯期:打印出了Gradle插件中的信息:
Task :app:uploadTask
name:1.0.0 code:1 info:當前是第一個版本:初始apk
4.指定發(fā)布二進制文件:
使用新版 Maven 插件
,可以直接以指定二進制文件的方式發(fā)布組件。例如:
apply plugin: 'maven-publish'
publishing {
publications {
[任務名](MavenPublication) {
groupId MAVEN_GROUP_ID
artifactId MAVEN_ARTIFACTID
version MAVEN_VERSION
artifact([文件路徑])
}
}
repositories {
maven {
// 發(fā)布倉庫路徑
url MAVEN_RELEASE_URL
}
}
}
-
開發(fā)
+關注
關注
0文章
370瀏覽量
40844 -
maven
+關注
關注
0文章
30瀏覽量
3713 -
gradle
+關注
關注
0文章
26瀏覽量
719
發(fā)布評論請先 登錄
相關推薦
評論