这篇文章主要记录在Android项目中如何将自己的库上传到maven中,这里主要记录gradle的配置信息,gradle plugin的版本为8.0+;
参考资料:https://docs.gradle.org/8.5/userguide/publishing_maven.html#publishing_maven:publications
参考资料:https://developer.android.google.cn/build/publish-library/upload-library?hl=zh-cn#groovy
1. Groovy DSL方式(build.gradle)
① 在build.gradle文件中添加maven-publish插件
plugins {
id("maven-publish")
// 下面这个插件用于from components.release
// id("org.jetbrains.kotlin.android")
}
② 在build.gradle文件中配置publish信息
publishing {
publications {
register("release", MavenPublication) {
groupId = "mGroupId" // 填写自己的groupId
artifactId = "mArtifactId" //填写自己的artifactId
version = "1.0.0"
// 这个配置会生成aar文件
// 这里要注意,要引入一个gradle插件,id("org.jetbrains.kotlin.android")
afterEvaluate {
from components.release
}
}
register("Snapshot", MavenPublication) {
groupId = "mGroupId" // 填写自己的groupId
artifactId = "mArtifactId" //填写自己的artifactId
version = "1.0.0-SNAPSHOT-" + System.currentTimeMillis()
println("snapshot version : " + version)
afterEvaluate {
from components.release
}
}
}
repositories {
maven {
url = uri("https://www.xxxxx.com/") // 填写自己的maven地址
name = "MyRelease" // 这个是Repository名称,即远端仓库的名称,这个根据自己喜好命名
setAllowInsecureProtocol(true) // 如果url是http,需要填上这个,如果是https,则可以不填
credentials {
username = "mUserName" // maven仓库的用户名称
password = "mPassword" // maven仓库的密码
}
}
// 用于测试,自己的私有库在本地localdebug文件夹生成
maven {
url = "../localdebug"
name = "localdebug"
}
}
}
publish信息配置完成之后,可以就可以点击对应的任务将自己的库上传到maven当中了;
如下截图中;
①表示同步gradle信息
②打开gradle任务
③找到对应的task上传自己的库到maven当中
2. kotlin DSL方式(build.gradle.kts)
① 在build.gradle文件中添加maven-publish插件
plugins {
id("maven-publish")
}
② 在build.gradle.kts文件中配置publish信息
publishing {
publications {
register<MavenPublication>("release") {
groupId = "mGroupId" // 填写自己的groupId
artifactId = "mArtifactId" //填写自己的artifactId
version = "1.0.0"
afterEvaluate {
from(components["release"])
}
}
register<MavenPublication>("Snapshot") {
groupId = "mGroupId" // 填写自己的groupId
artifactId = "mArtifactId" //填写自己的artifactId
version = "1.0.0-SNAPSHOT-" + System.currentTimeMillis()
println("snapshot version : " + version)
afterEvaluate {
from(components["release"])
}
}
}
repositories {
maven {
url = uri("https://www.xxxxx.com/") // 填写自己的maven地址
name = "MyRelease" // 这个是Repository名称,即远端仓库的名称,这个根据自己喜好命名
isAllowInsecureProtocol = true // 如果url是http,需要填上这个,如果是https,则可以不填
credentials {
username = "mUserName" // maven仓库的用户名称
password = "mPassword" // maven仓库的密码
}
}
}
}