编写你的uploadArchive.gradle上传模板文件
之前写了android studio2022.3.1 ,gradle8 打包aar、sources.jar 遇到的问题以及 Nexus通过web页面上传aar包。这次学习一下直接在项目中使用maven-push将aar发布到私服仓库。
首先需要一个上传的模板gradle文件,项目的根目录新建uploadArchive.gradle,将下面的代码copy到里面,当然这个文件也是参考站内的这篇文章juejin.cn/post/701336… 只不过稍微改动了用作者的代码在生成sources时在gradle8中运行出错。你需要把里面的东西改成你的信息,例如地址、账号、密码。
apply plugin: 'maven-publish'
//组织id
def GroupId = 'com.glc.top'
//项目id
def ArtifactId = 'top'
//版本号
def Version = '1.0.3'
//登录的nexus用户名
def userName = "admin"
//登录的nexus密码
def passWord = "admin"
//仓库地址
def releasesRepoUrl = "http://localhost:8081/repository/test/"
//生成sources保证aar可以查看源码
task generateSourcesJar(type:Jar){
//这里gradle版本8以上有改动 需要用 archiveClassifier 而不是classifier
archiveClassifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//生成javadoc
task generateJavadocJar(type: Jar){
from android.sourceSets.main.java.srcDirs
archiveClassifier.set("javadoc")
}
afterEvaluate {
publishing {
//发布的 arr 包配置
publications{
//名字可以自己指定,如果有多渠道,整段多复制一个
release(MavenPublication){
groupId = GroupId//公司域名
artifactId = ArtifactId//该aar包的名称
version = Version//版本号
// 必须有这个 否则不会上传AAR包
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
// 多渠道,可以自行指定aar路径
// def projectName = project.getName()
// artifact "build/outputs/aar/${projectName}-release.aar"
// 上传source,这样使用方可以看到方法注释
artifact generateSourcesJar
// 上传javadoc,这样使用方可以看到方法注释
artifact generateJavadocJar
//依赖关系
pom.withXml{
def dependenciesNode = asNode().appendNode("dependencies")
configurations.implementation.allDependencies.forEach(){
Dependency dependency ->
if (dependency.version != "unspecified" && dependency.name != "unspecified"){
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
}
}
}
}
}
//仓库地址配置
repositories {
maven {
//允许使用 http
allowInsecureProtocol = true
url = releasesRepoUrl
credentials {
username = userName
password = passWord
}
}
}
}
}
在需要生成的module下引入uploadArchive.gradle
然后在需要生成依赖的module的build.gradle中引入上面的模板文件
apply from: '../uploadArchive.gradle'
点击android studio侧边栏的Gradle
之后点击android studio 侧边栏的Gradle,找到module下的publishing点击publish等待执行完毕,如果你这里没有这些操作项,你可以查看这篇文章 android studio2022.3.1 ,gradle8 打包aar、sources.jar 遇到的问题
如果没有错误的话,这个时候首先你本地会生成对应的aar文件以及javadoc、sourcesjar,然后你的私服仓库中也会有对应的版本了
nexus仓库中对应的依赖文件