美文网首页Android Other
Plugin with id 'maven' not found

Plugin with id 'maven' not found

作者: WilsonMing | 来源:发表于2022-07-21 10:31 被阅读0次

    如果你项目的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使用可参考官网文章(需翻墙)

    扩展阅读

    相关文章

      网友评论

        本文标题:Plugin with id 'maven' not found

        本文链接:https://www.haomeiwen.com/subject/clkobrtx.html