def glbMainVersion = "1.0.0" //主版本号
def glbBuildId = 1000
def glbBuildType = "TEST" // TEST, STABLE, RELEASE
ext {
mainVersion = glbMainVersion // 主版本号
buildId = glbBuildId
buildType = glbBuildType
verName = mainVersion + "+" + releaseTime() + "." + buildId
deployVersion = getSdkVersion()
/**
* maven仓库地址
*/
mavenSnapshotUrl = "xxx"
mavenReleaseUrl = "xxx"
userName = "xxx"
password = "xxx"
deployUrl = getBuildUrl()
groupId = "xxxx"
artifactId = [
aaa: "aaa",
bbb: "bbb",
ccc: "ccc",
]
}
static def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
def getSdkVersion() {
if (buildType == "STABLE") {
return mainVersion + "." + buildId + "-SNAPSHOT"
}
if (buildType == "RELEASE") {
return mainVersion + "." + buildId
}
return mainVersion + "." + buildId + "-beta-SNAPSHOT"
}
def getBuildUrl() {
if (buildType == "RELEASE") {
return rootProject.mavenReleaseUrl
}
return rootProject.mavenSnapshotUrl
}
在单个lib的打包
apply plugin: 'maven'
uploadArchives {
def libName = "your lib name"
repositories.mavenDeployer {
repository(url: rootProject.deployUrl) {
authentication(userName: rootProject.userName, password: rootProject.password)
}
// 唯一标识
pom.groupId = rootProject.groupId
// 项目名称
pom.artifactId = rootProject.artifactId[libName]
// 版本号
pom.version = rootProject.deployVersion
pom.whenConfigured { pom ->
pom.dependencies.forEach { dep ->
if (dep.getVersion() == "unspecified") {
dep.setGroupId(rootProject.groupId)
dep.setVersion(rootProject.deployVersion)
}
}
}
}
}