Plugin with id 'maven' not found.

如果你项目的gradle版本>7.0,在项目中引用maven插件

apply plugin: 'maven'

会报错
Plugin with id 'maven' not found.

因为在In Gradle 7.x官网已经废弃了,
The maven plugin has been removed. You should use the maven-publish plugin instead.

image.png

  • 那解决方法了?
    官方提示使用maven-publish插件替换,如果之前在builder.gradle使用uploadArchives 打包上传maven的
apply plugin: 'groovy'
apply plugin: 'maven'

repositories {
    mavenCentral()
}

dependencies {
    //xxx
}
uploadArchives{
//    打包成一个jar    引用jar  生成这个三个信息
    repositories.mavenDeployer {
//项目名
        pom.groupId = 'com.x'
        pom.artifactId = 'modify'
        pom.version = '1.0.0'
        repository(url: uri('../repo'))
    }
}
sourceCompatibility = "8"
targetCompatibility = "8"

需要改成

//maven插件在gradel7.0 已删除
apply plugin: 'groovy'
apply plugin: 'maven-publish'
// 或者以下写法
//plugins {
//  id 'groovy'
//  id 'maven-publish'
//}


dependencies {
//......略写
}

afterEvaluate {
    publishing {
//    配置maven-publishing插件的输出物
        publications {
            maven(MavenPublication) {
                groupId = 'com.x'
                artifactId = 'modify'
                version = '1.0.0'
            }
        }
        repositories {
            maven {
                url = uri('../repo')
            }
        }
    }
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

为什么maven-publish插件替换maven?

  • gradle maven 插件从Gradle1.0开始支持,主要为了兼容原来maven项目迁移,在Gradle 6.2 之后,就完全废弃了。
  • gradle maven-publish 插件,从gradle 1.3 之后开始支持,随着gradle的成熟,为了更好的在gradle上支持maven,重新开发对maven支持且功能更加强大。gradle主推只使用Gradle maven-publish插件,在Android Gradle 插件 3.6.0 及更高版本支持 Maven Publish Gradle 插件,可让您将构建工件发布到 Apache Maven 代码库。

具体Gradle maven-publish plugin使用可参考官网文章(需翻墙)

  • https://docs.gradle.org/current/userguide/publishing_maven.html
  • https://developer.android.com/studio/build/maven-publish-plugin?hl=zh-cn

扩展阅读

  • Gradle学习(五) - 打包发布
  • Android:发布aar包到maven仓库以及 maven插件 和 maven-publish 插件的区别

你可能感兴趣的:(Plugin with id 'maven' not found.)