我正在尝试将android插件封装到我自己的插件中,但当我尝试应用我的插件构建失败时,会出现一个异常:
A problem occurred evaluating root project 'myproj'.
> Failed to apply plugin [id 'com.mycomp.build']
> Failed to apply plugin [id 'android-library']
> Plugin with id 'android-library' not found.下面是我是如何在自己的插件实现中应用android插件的:
// build.gradle
apply plugin: 'groovy'
version = '1.0'
group = 'com.mycomp'
dependencies {
compile gradleApi()
compile localGroovy()
}
// Build.groovy
package com.mycomp
import org.gradle.api.Plugin
import org.gradle.api.Project
class Build implements Plugin<Project> {
void apply(Project project) {
println 'Hello from com.mycomp.Build'
project.beforeEvaluate {
buildscript.configurations.classpath +=
'com.android.tools.build:gradle:1.0.0-rc1'
}
project.configure(project) {
buildscript.repositories.mavenCentral()
apply plugin: 'android-library'
}
}
}由于某些原因,类路径没有正确加载,我做错了什么?
发布于 2014-12-06 01:18:30
我猜你想要添加的构建脚本的插件依赖关系已经解决了,因此它不会以这种方式工作。您需要指定要作为脚本依赖项本身应用的插件。
它将以这种方式工作:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc1'
}
}
apply plugin: 'groovy'
apply plugin: Build
version = '1.0'
group = 'com.mycomp'
dependencies {
compile gradleApi()
compile localGroovy()
}
import org.gradle.api.Plugin
import org.gradle.api.Project
class Build implements Plugin<Project> {
void apply(Project project) {
project.configure(project) {
apply plugin: 'android-library'
}
}
}现在,找到了android-plugin,但它失败了,因为之前已经应用了groovy插件,并且存在冲突。
发布于 2017-08-13 00:57:22
使用项目的PluginManager。例如,war plugin会像这样引入java插件:
public class WarPlugin implements Plugin<Project> {
// ...
public void apply(final Project project) {
project.getPluginManager().apply(org.gradle.api.plugins.JavaPlugin.class);
// ...
}
// ...
}https://stackoverflow.com/questions/27318144
复制相似问题