Gradle上传依赖包到私有仓库

一、背景

gradle脚本管理项目的过程中,我们会有很多依赖包需要管理。采用自搭建Maven仓库的形式是一个很好的选择,我们可以把第三方包,或者自己开发的包上传仓库,提供给其他项目使用。

由于每次把.aar放在项目中,管理和依赖都不统一,上传maven,统一依赖方式,更容易清楚的保留依赖记录。

创建单独的.gradle脚本文件,在需要的项目中进行引入和配置参数,很方便做到统一管理。

二、脚本

第三方.aar上传

复制代码
plugins {
    id 'maven-publish'
}

def aarFile = file('nuisdk-release.aar')

publishing {
    publications {
        release(MavenPublication) {
            groupId = "cn.aihongbo.third" // 组 ID
            artifactId = "nui" // 项目名称
            version = "1.0.0" // 版本号

            artifact(aarFile) {
                extension 'aar'
            }
        }
    }
    repositories {
        maven {
            url = "https://localhost/nexus/repository/android-releases/"  // 替换为私有仓库URL
            allowInsecureProtocol = true    // 新版本gradle默认强制使用https,这里需要设置允许使用http
            credentials {
                username = "【账号】"          // 仓库认证用户名
                password = "【密码】"       // 仓库认证密码
            }
        }
    }
}

项目模块上传

复制代码
apply plugin: 'maven-publish'

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                groupId project.ext.groupid
                artifactId project.ext.name
                version project.ext.version
                afterEvaluate {
                    from components.release
                }
            }
        }
        repositories {
            maven {
                def releasesRepoUrl = "https://localhost/nexus/repository/android-releases/"
                def snapshotsRepoUrl = "https://localhost/nexus/repository/android-snapshots/"
                url publications.release.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
                allowInsecureProtocol true
                credentials {
                    username = "【账号】"          // 仓库认证用户名
                    password = "【密码】"       // 仓库认证密码
                }
            }
        }
    }
}

自有项目使用

项目模块的build.gradle中添加

复制代码
apply from: '../../../../config/upload.gradle'
ext {
    groupid = "com.aihongbo.component"
    name = "nui"
    version = "1.0.3"
}
相关推荐
trayvontang2 天前
Gradle核心概念与快速上手
gradle·项目构建·依赖分析·jdk自动下载
trayvontang3 天前
理解Gradle各种仓库
gradle·gradle仓库
SinFeeLoo_星凤楼4 天前
Android Studio 中gradle.properties 中的中文注释显示乱码,如何解决?
android·ide·gradle·android studio·.properties
I'm Jie5 天前
Gradle 多模块依赖集中管理方案,Version Catalogs 详解(Kotlin DSL)
android·java·spring boot·kotlin·gradle·maven
一线大码6 天前
Gradle 基础篇之基础知识的介绍和使用
后端·gradle
雨声不在8 天前
gradle编译missing_rules报错处理
android·gradle·agp8
明川10 天前
Android Gradle - ASM + AsmClassVisitorFactory插桩使用
android·前端·gradle
Coffeeee12 天前
Android15适配之世上本无坑,targetSdkVersion升到35后全是坑
android·前端·gradle
明川14 天前
Android Gradle学习 - Gradle插件开发与发布指南
android·前端·gradle
原来是好奇心16 天前
深入Spring Boot源码(一):环境搭建与初探项目架构
java·gradle·源码·springboot