情况(编译后无aar文件)
上传仓库后,在JitPack中编译成功后的截图
解决方法
通过上图可发现代码已经编译通过,但是在Files中却没有aar文件的生成
解决方法是添加配置,上代码
// publishing 用于定义项目的发布相关配置
publishing {
// 配置maven 仓库
repositories { RepositoryHandler handler ->
handler.mavenLocal() // 发布到默认的 本地maven 仓库 ,路径: USER_HOME/.m2/repository/ 或 setting.xml中配置的路径
}
// publications 用于定义发布任务的配置块
publications {
// 这个 aarAndroid 可以随便填,只是一个任务名字而已
// MavenPublication必须有,这个是调用的任务类
aarAndroid(MavenPublication) {
// 这里头是artifacts的配置信息,不填会采用默认的
// groupId = "${groupN}"
// artifactId = "${artifactIdN}"
// version = "${versionN}"
// 增加上传源码的 task
artifact sourceJar
// 必须有这个 否则不会上传AAR包 将bundleReleaseAar任务的单个输出文件作为发布的AAR文件。这样,该AAR文件就会成为 MavenPublication 的 artifact 并进行发布
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
}
}
}
// 增加上传源码的task
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
archiveClassifier = "sources"
}
通过代码可发现是添加了 afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
代码,就能实现上传编译后release的aar包
说明
afterEvaluate
方法用于注册一个闭包(closure),该闭包将在项目的配置阶段完成后执行。这样可以确保在所有配置完成后再执行特定的操作,例如定义额外的任务或配置
artifact()
方法是 MavenPublish 插件提供的一个便捷方法,用于配置发布的 artifact(发布物)
artifact(tasks.getByName("bundleReleaseAar"))
将 bundleReleaseAar 任务的单个输出文件作为发布的 AAR 文件。这样,该 AAR 文件就会成为 MavenPublication 的 artifact 并进行发布。