一、背景
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"
}