maven插件ven-publis 发布gradle 8 Could not find method classifier() for arguments [sources] on task 问题解决
·
gradle从7版本到8版本发布maven仓库,发现了如下问题
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method classifier() for arguments [sources] on task ':mouduleA:generateSourcesJar' of type org.gradle.api.tasks.bundling.Jar.
原因是gradle7和8设置项有些不一样
classifier "sources"要改成archiveClassifier.set("sources")
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
//classifier "sources"
archiveClassifier.set("sources")
}
全部代码如下:
apply plugin: 'maven-publish'
println "publish -->> moduleName: " + moduleName
println "publish -->> moduleVersion: " + moduleVersion
println "publish -->> moduleDescription: " + moduleDescription
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
//classifier "sources"
archiveClassifier.set("sources")
}
publishing {
//maven配置参数
repositories {
maven {
url = moduleVersion.endsWith('SNAPSHOT') ? MAVEN_URL_SNAPSHOT : MAVEN_URL_RELEASE
credentials {
username MAVEN_USER_NAME
password MAVEN_PWD
}
}
}
publications {
//名字可以随意,如果有多渠道,整段再下面多复制一个
Publish(MavenPublication) {
groupId = GROUP_ID//公司域名
//def projectName = project.getName()
artifactId = moduleName//该aar包的名称
version = moduleVersion//版本号
// 必须有这个 否则不会上传AAR包
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
// 必须是多渠道,需要指定aar路径
//afterEvaluate { artifact("build/outputs/aar/app-debug.aar") }
// 上传source,这样使用方可以看到方法注释
artifact generateSourcesJar
pom{
description = moduleDescription
//'新增了功能:\n' +
//' 对于应用启动时长记录,\n' +
//' 可以上报应用启动时长\n' //project description
// 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 "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')
}
}
}
}
}
}
}
在此记个笔记
更多推荐



所有评论(0)