一、問題
自定義 gradle plugin 并發(fā)布到本地目錄后,然后集成到項(xiàng)目中,出現(xiàn)如下報(bào)錯,即提示找不到 id。
* What went wrong:
A problem occurred evaluating project ':mvvm'.
> Plugin with id 'ly.com.plugin' not found.
二、解決
1、排查發(fā)布的路徑是否符合預(yù)期
如下,是發(fā)布在插件工程目錄的上一級目錄。
uploadArchives {
repositories {
mavenDeployer {
repository(url: uri('../repo'))
}
}
}
2、排查 root project 是否正確設(shè)置了倉庫依賴和路徑依賴
如下,首先配置 buildscript,通過調(diào)用 maven() 方法,傳遞本地路徑的 uri,并且設(shè)置路徑 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 的路徑以及名稱是否正確
正確的目錄應(yīng)該是
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,這里出錯了一定會導(dǎo)致問題的出現(xiàn)
2.properties 的名字是否正確。文件的名字必須與 apply 中出現(xiàn)的名字是一樣的。