找不到自定义的 gradle plugin

作者: 仰简 | 来源:发表于2019-07-05 09:58 被阅读5次

    一、问题

    自定义 gradle plugin 并发布到本地目录后,然后集成到项目中,出现如下报错,即提示找不到 id。

    * What went wrong:
    A problem occurred evaluating project ':mvvm'.
    > Plugin with id 'ly.com.plugin' not found.
    

    二、解决

    1、排查发布的路径是否符合预期

    如下,是发布在插件工程目录的上一级目录。

    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: uri('../repo'))
            }
        }
    }
    

    2、排查 root project 是否正确设置了仓库依赖和路径依赖

    如下,首先配置 buildscript,通过调用 maven() 方法,传递本地路径的 uri,并且设置路径 classpath 的依赖

    buildscript {
        
        repositories {
            google()
            jcenter()
            maven {
                url uri('./repo')
            }
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
            classpath 'ly.com.plugin:CustomPlugin:0.0.1'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    

    再配置 allprojects

    allprojects {
        Log.println("allprojects project " + it.getName())
        repositories {
            google()
            jcenter()
            maven { url 'https://jitpack.io' }
            maven {
                url uri('./repo')
            }
        }
    }
    

    3、检查插件的 properties 的路径以及名称是否正确

    正确的目录应该是

    src/main/resources/META-INF/gradle-plugins/${applyName}.properties
    

    比如这里的是

    src/main/resources/META-INF/gradle-plugins/ly.com.plugin.properties
    

    那么我们在依赖的时候就可以用

    apply plugin: 'ly.com.plugin'
    

    这里,特别要注意的是:

    1.META-INF 是否写成了 META-INFO,这里出错了一定会导致问题的出现
    2.properties 的名字是否正确。文件的名字必须与 apply 中出现的名字是一样的。

    相关文章

      网友评论

        本文标题:找不到自定义的 gradle plugin

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