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"
}
相关推荐
没有bug.的程序员4 天前
依赖治理之巅:Maven 与 Gradle 依赖树分析内核、冲突判定博弈与工程自愈实战指南
java·gradle·maven·依赖治理·冲突判定·依赖树
没有bug.的程序员6 天前
Gradle 构建优化深度探秘:从 Java 核心到底层 Android 物理性能压榨实战指南
android·java·开发语言·分布式·缓存·gradle
索荣荣19 天前
Gradle全面指南:从入门到精通
java·gradle
onkel in blog1 个月前
【Java】Gradle 多模块项目实战:Spring Boot 微服务搭建全流程
java·spring boot·微服务·gradle
彬sir哥1 个月前
android studio如何把.gradle从C盘移到D盘
android·gradle·maven·android studio
kekegdsz1 个月前
Android构建优化:编译速度从 10 分钟编译到 10 秒
android·性能优化·gradle
码农小卡拉1 个月前
Maven与Gradle选型指南:如何匹配项目的依赖管理需求
java·gradle·maven
小当家.1052 个月前
Maven与Gradle完整对比指南:构建工具深度解析
java·gradle·maven
indexsunny2 个月前
互联网大厂Java面试实战:Spring Boot与微服务在电商场景的应用解析
java·spring boot·redis·微服务·kafka·gradle·maven
zhanglb122 个月前
Gradle 全局配置使用
gradle·android studio·intellij idea