Files
Aria/gradle/mavenCentral-release.gradle
tongtongstudio 31cee5b0f5 refactor(download): 重构下载模块代码格式和逻辑实现
- 格式化 ChildHandleDialog 类代码缩进和空行
- 优化 ChildHandleDialog 中的 onClick 方法使用 if-else 替代 switch
- 格式化 M3U8LiveDLoadActivity 类代码缩进和空行
- 优化 M3U8LiveDLoadActivity 中的菜单点击事件处理逻辑
- 格式化 M3U8VodDLoadActivity 类代码缩进和空行
- 添加必要的 import 语句和空行分隔
- 统一代码风格和提高可读性
2026-07-25 19:02:09 +08:00

237 lines
9.4 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
apply plugin: 'maven-publish'
apply plugin: 'signing'
ext {
PUBLISH_GROUP_ID = rootProject.ext.mavenCentralGroupId
PUBLISH_VERSION = rootProject.ext.mavenVersion
}
//编译groovy代码时采用 UTF-8
tasks.withType(GroovyCompile) {
groovyOptions.encoding = "UTF-8"
}
//编译JAVA文件时采用UTF-8
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// java doc 采用utf-8
// https://docs.gradle.org/current/dsl/org.gradle.api.tasks.javadoc.Javadoc.html#org.gradle.api.tasks.javadoc.Javadoc:options
tasks.withType(Javadoc) {
if (JavaVersion.current().isJava9Compatible()) {
options.addBooleanOption('html5', true)
}
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
addStringOption('Xdoclint:none', '-quiet') // 忽略检查@params 和 @return
}
}
ext["signing.keyId"] = ''
ext["signing.password"] = ''
ext["signing.secretKeyRingFile"] = ''
ext["ossrhUsername"] = ''
ext["ossrhPassword"] = ''
File secretPropsFile = project.rootProject.file('local.properties')
if (secretPropsFile.exists()) {
println "Found secret props file, loading props"
Properties p = new Properties()
p.load(new FileInputStream(secretPropsFile))
p.each { name, value ->
ext[name] = value
}
} else {
println "No props file, loading env vars"
}
static def localMavenRepo() {
'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
}
def getReleaseRepositoryUrl() {
return isLocal() ? localMavenRepo()
: hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
}
def getSnapshotRepositoryUrl() {
return isLocal() ? localMavenRepo()
: hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
: 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
def isLocal() {
return ISLOCAL == 'true'
}
afterEvaluate { project ->
if (isLocal()) {
println("上传到本地仓库")
} else {
println("上传到中央仓库")
}
publishing {
def isAndroidProject = project.plugins.hasPlugin('com.android.application') || project.
plugins.
hasPlugin('com.android.library')
publications {
release(MavenPublication) {
// groupId 等信息
groupId PUBLISH_GROUP_ID
artifactId project.PUBLISH_ARTIFACT_ID
version PUBLISH_VERSION
if (isAndroidProject) {
// 移除R文件移除BuildConfig文件
project.tasks.findByName('generateReleaseBuildConfig')?.enabled = false
project.tasks.findByName('generateDebugBuildConfig')?.enabled = false
project.tasks.findByName('generateReleaseResValues')?.enabled = false
project.tasks.findByName('generateDebugResValues')?.enabled = false
// 使用了这个组件就不需要自己aar、pom.withxml了
def releaseComponent = project.components.findByName('release')
if (releaseComponent != null) {
from releaseComponent
}
def variants = project.android.libraryVariants.findAll {
it.buildType.name.equalsIgnoreCase('debug')
}
def getAndroidSdkDirectory = project.android.sdkDirectory
def getAndroidJar = "${getAndroidSdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar"
def androidJavadocs = project.task("androidJavadocs", type: Javadoc, dependsOn: 'assembleDebug') {
println("开始打包aar")
source = variants.collect { it.getJavaCompileProvider().get().source }
classpath = project.files(
getAndroidJar,
project.file("build/intermediates/classes/debug")
)
doFirst {
classpath += project.files(variants.collect { it.javaCompile.classpath.files })
}
options {
links("http://docs.oracle.com/javase/7/docs/api/")
linksOffline("http://d.android.com/reference",
"${getAndroidSdkDirectory}/docs/reference")
encoding "UTF-8"
charSet 'UTF-8'
addStringOption('Xdoclint:none', '-quiet') // 忽略检查@params 和 @return
}
exclude '**/R.java'
exclude "**/BuildConfig.class"
}
def cleanJavadocTask = project.task("cleanJavadocTask", type: Delete) {
delete androidJavadocs.destinationDir
}
project.clean.dependsOn(cleanJavadocTask)
def androidJavadocsJar = project.task("androidJavadocsJar", type: Jar, dependsOn: androidJavadocs) {
archiveClassifier = 'javadoc'
archiveBaseName = "${JAR_PREFIX}${project.name}"
}
def androidSourcesJar = project.task("androidSourcesJar", type: Jar) {
archiveClassifier = 'sources'
from project.android.sourceSets.main.java.source
archiveBaseName = "${JAR_PREFIX}${project.name}"
exclude "**/R.class"
exclude "**/BuildConfig.class"
}
def compileDebugJavaWithJavac = project.tasks.findByName('compileDebugJavaWithJavac')
def androidLibraryJar = project.task("androidLibraryJar", type: Jar, dependsOn: 'compileDebugJavaWithJavac') {
// java 编译后的 class文件, build/intermediates/classes/debug/
if (compileDebugJavaWithJavac != null) {
from compileDebugJavaWithJavac.destinationDir
}
// kotlin 编译后的 class文件
from 'build/tmp/kotlin-classes/debug/'
// 指定需要被打包成 jar 的文件夹
// include('libs/**')
exclude '**/R.class'
exclude '**/R$*.class'
exclude "**/BuildConfig.class"
archiveBaseName = "${JAR_PREFIX}${project.name}-cache"
}
artifact androidLibraryJar
artifact androidSourcesJar
artifact androidJavadocsJar
} else if (project.plugins.hasPlugin('java')) {
def javaComponent = project.components.findByName('java')
if (javaComponent != null) {
from javaComponent
}
def sourcesJar = project.task("sourcesJar", type: Jar, dependsOn: 'classes') {
archiveClassifier = 'sources'
from project.sourceSets.main.allSource
}
def javadocsJar = project.task("javadocsJar", type: Jar, dependsOn: 'javadoc') {
archiveClassifier = 'javadoc'
from project.javadoc.destinationDir
}
artifact sourcesJar
artifact javadocsJar
}
pom {
name = project.PUBLISH_ARTIFACT_ID
description = rootProject.ext.desc
url = rootProject.ext.website
licenses {
license {
//协议类型一般默认Apache License2.0的话不用改:
name = rootProject.ext.mavenCentralLicences
url = rootProject.ext.mavenCentralLicencesURL
}
}
developers {
developer {
id = rootProject.ext.mavenCentralUserID
name = rootProject.ext.mavenCentralUserName
email = rootProject.ext.mavenCentralEmail
}
}
scm {
//修改成你的Git地址
connection = rootProject.ext.mavenCentralConnection
developerConnection = rootProject.ext.mavenCentralDeveloperConnection
//分支地址:
url = rootProject.ext.mavenCentralTreeURL
}
}
}
}
repositories {
maven {
name = "mavencentral"
def releasesRepoUrl = getReleaseRepositoryUrl()
def snapshotsRepoUrl = getSnapshotRepositoryUrl()
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username ossrhUsername
password ossrhPassword
}
}
}
}
signing {
sign publishing.publications
}
}