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"
}
相关推荐
leobertlan7 天前
好玩系列:脚本和插件使我快乐
前端·程序员·gradle
芦半山10 天前
快速应用「幽灵调用」的正式修复
android·gradle
猿小蔡14 天前
Gradle 中 Maven 仓库配置
gradle
前行的小黑炭1 个月前
Android 不同构建模式下使用不同类的例子:如何在debug模式和release模式,让其使用不同的类呢?
android·kotlin·gradle
针叶1 个月前
解决Android Studio查找aar源码的错误
android·gradle·android studio
大王派来巡山的小旋风1 个月前
组件化打包的时候,子模块是 Libary库模块中libs包含aar的时候遇到的问题
kotlin·gradle
coder_pig1 个月前
🤡 公司Android老项目升级踩坑小记
android·flutter·gradle
Code0cean2 个月前
Gradle快速入门学习
gradle
penngo2 个月前
Maven/Gradle常用命令
java·gradle·maven
尘云逸2 个月前
将开发的软件安装到手机:环境配置、android studio设置、命令行操作
android·react native·adb·智能手机·gradle·android studio·android-studio