@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface GenerateBuilder { String value() default ""; } @SupportedAnnotationTypes("com.example.GenerateBuilder") public class GenerateBuilderProcessor extends AbstractProcessor { @Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { for (TypeElement annotation : annotations) { for (Element element : roundEnv.getElementsAnnotatedWith(annotation)) { if (element instanceof TypeElement) { String className = ((TypeElement) element).getQualifiedName().toString(); generateBuilderForClass(className); } } } return true; } private void generateBuilderForClass(String className) { } } <build> <plugins> <plugin> <groupId>org.bushrod</groupId> <artifactId>builder-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <processor> com.example.GenerateBuilderProcessor </processor> </configuration> </execution> </executions> <dependencies> <dependency> org.builder:builder-core:1.0.0 </dependency> </dependencies> </plugin> </plugins> </build>


上一篇:
下一篇:
切换中文