maven-publish 打包成依赖库到maven
plugins {
id 'maven-publish'
}
gradle 8以下
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "sources"
}
gradle 8
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
// classifier "sources"
archiveClassifier.set("sources")
}
publishing {
//maven配置参数
repositories {
maven {
allowInsecureProtocol = true
url = 'http://...' //仓库地址 到你的文件夹路径例如 maven-releases
credentials {
username 'admin' //账号
password 'admin' //密码
}
}
}
publications {
//名字可以随意,如果有多渠道,整段再下面多复制一个
Publish(MavenPublication) {
groupId = 'com.cmwl'//公司域名
//def projectName = project.getName()
artifactId = "lib_test"//该aar包的名称
version = '1.0.1'//版本号
// 必须有这个 否则不会上传AAR包
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
// 必须是多渠道,需要指定aar路径
//afterEvaluate { artifact("build/outputs/aar/app-debug.aar") }
// 上传source,这样使用方可以看到方法注释
artifact generateSourcesJar
// pom文件中声明依赖,从而传递到使用方
pom.withXml { a ->
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.each {
// 避免出现空节点或 artifactId=unspecified 的节点
if (it.group != null && (it.name != null && "unspecified" != it.name) && it.version != null) {
println "空节点导致自定义gropid失效"
println "dependency=${it.toString()}"
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
dependencyNode.appendNode('scope', 'implementation')
}
}
}
}
}
}
提交到mave仓库
使用
maven {
allowInsecureProtocol = true
url 'http://.../maven-releases' //你提交的地址
}
app/bulid.gradle中
implementation 'com.cmwl:lib_test:1.0.1'
原文地址:https://blog.csdn.net/weixin_41648633/article/details/142776717
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!