一、问题
自定义 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 中出现的名字是一样的。
网友评论