Мне нужно применить плагин Gradle, в этом случае errorprone от пользовательского плагина Gradle.
Мой плагин имеет build.gradle, который выглядит следующим образом:
gradlePlugin {
plugins {
myErrorprone {
id = 'my-errorprone'
implementationClass = 'com.my.MyErrorpronePlugin'
}
}
}
И Код плагина:
public class MyErrorpronePlugin implements Plugin<Project> {
List<String> compilerArgs =
Arrays.asList(
"-XepExcludedPaths:.*/proto/.*|.*/protoGeneratedSrc/.*",
"-XepDisableWarningsInGeneratedCode");
@Override
public void apply(Project project) {
project.getPluginManager().apply("net.ltgt.errorprone:");
for (JavaCompile task : project.getTasks().withType(JavaCompile.class)) {
task.getOptions().setCompilerArgs(compilerArgs);
}
}
}
Затем, когда в другом проекте я применяю этот плагин (после получения зависимостей в buildscript) следующим образом:
apply plugin: 'my-errorprone'
Возникла проблема root project 'my-project.
Не удалось применить плагин [id' my-errorprone '] Плагин с идентификатором' net .ltgt.errorprone 'не найден.
И это разрешается только в том случае, если я добавлю в buildscript classpath
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.16"
Как я могу заставить свой плагин работать так, чтобы проекту, который потребляет мой плагин, не пришлось добавлять это прямая зависимость в пути к классам в "net .ltgt.gradle: gradle-errorprone-plugin: 0.0.16"?