Skip to content

UCodeUStory/JavaPoetSample

Repository files navigation

JavaPoet 小例子

  • 1。新建libannotation 是java Library 工程 这里定义的注解,

  • 2。新建libcompiler 是java Library 工程 这里放注解解析器,

  • 新建注解解析器,添加支持的注解

  • @AutoService(Processor.class) public class AnnotationProcessor extends AbstractProcessor {

    @Override public Set getSupportedAnnotationTypes() {

       return Collections.singleton(Test.class.getCanonicalName());
    

    }

    @Override public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) { try { //根据注解做处理,这里测试生成一个Person类 //生成的文件在app/build/generated/source/debug/下生成 createPersonClass(); } catch (IOException e) { e.printStackTrace(); } return false; } }

  • build.gradle 配置

  • apply plugin: 'java'

  • dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')

    compile 'com.google.auto:auto-common:0.6'

    compile 'com.google.auto.service:auto-service:1.0-rc2'

    compile 'com.squareup:javapoet:1.7.0'

    compile project(':libannotation')

    sourceCompatibility = 1.7 targetCompatibility = 1.7 }

  • 3。主项目根目录build.gradle配置

  • classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

  • app下build.gradle 配置

  • 头部添加

  • apply plugin: 'com.neenbedankt.android-apt'

  • 底部依赖添加

  • apt project(':libcompiler') compile project(path: ':libannotation')

    在项目中使用注解,不使用注解解析器不调用

4。make 项目

5。在app/build/generated/source/debug/下生成Person类表示成功 * * * */

About

JavaPoet的一个简单例子

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages