如何在自定义gradle插件中从Java sourceSet获取所有特定类型的注释?

时间:2018-08-30 00:24:08

标签: java gradle gradle-plugin

我正在构建一个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" );
            }
        );
    }
}

插件:

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
    }
}

是否有一些lib可以做到这一点?我如何只获得将要编译和打包的类?

0 个答案:

没有答案