maven-publish插件gradle升级8.0构建失败

1,052 阅读1分钟

异常信息 Caused by: groovy.lang.MissingPropertyException: Could not set unknown property 'classifier' for task ':xxxxx-task:sourcesJar' of type org.gradle.api.tasks.bundling.Jar.

GPT给出的答案

task sourcesJar(type: Jar) {
    // Before Gradle 8.0
    // classifier = 'sources'

    // After Gradle 8.0
    archiveClassifier.set('sources')
}

查了一下5.1只有就有这个api了

/**  
* Returns the classifier part of the archive name, if any.  
*  
* @return The classifier. Internal property may be null.  
*  
* @since 5.1  
*/  
@Internal("Represented as part of archiveFile")  
public Property<String> getArchiveClassifier() {  
return archiveClassifier;  
}

判断版本大于5.1即可

task sourcesJar(type: Jar) {  
    def gradleVersion = gradle.gradleVersion  
    if ((GradleVersion.version(gradleVersion) <=> GradleVersion.version("5.1.0")) >= 0{ 
        archiveClassifier = 'sources'  
    } else {  
        classifier = 'sources'  
    }  
}