Я создаю подключаемый модуль Gradle, который хочу использовать для чтения аннотаций определенных типов из компилируемого кода Java и выполнения некоторых действий на основе этих аннотаций. Как мне получить этот исходный код и получить от него аннотации?
Мой плагин написан на Java.
Конфигурация плагина:
import org.gradle.api.Plugin;
import org.gradle.api.Project;
public class GetAnnotationsPlugin implements Plugin<Project>
{
@Override
public void apply(Project project)
{
//Create our task
project.getTasks().create(
"getAnnotations",
GetAnnotations.class,
(task) ->
{
task.setName( "AnnotationProcessor" );
}
);
}
}
Plugin:
import org.gradle.api.DefaultTask;
import org.gradle.api.Project;
import org.gradle.api.tasks.TaskAction;
public class GetAnnotations extends DefaultTask
{
private String taskName;
public String getTaskName()
{
return taskName;
}
public void setTaskName(String taskName)
{
this.taskName = taskName;
}
@TaskAction
public void parseAnnotations()
{
System.out.println( getTaskName() );
Project project = getProject();
//Now get the source code
//Load it (?)
//Get the annotations
}
}
Есть ли какая-нибудь библиотека для этого? Как бы получить только те классы, которые будут скомпилированы и упакованы?