2017-03-24 1 views
1

J'essaie de spécifier de cuiller mon processeur d'annotation Je veux savoir comment spécifier comment obtenir mon processeur d'annotation. Par exemple, si j'utilise 'com.neenbedankt.android-apt', j'ai juste besoin de spécifier ma référence de classe à l'intérieur du fichier 'META-INF/services/javax.annotation.processing.Processor'.Utilisation de Spoon Gradle Plugin pour créer des processeurs d'annotations personnalisés

C'est mon code gradle

buildscript { 
    repositories { 
     jcenter() 
     mavenLocal() 
     maven { 
      url 'http://spoon.gforge.inria.fr/repositories/' 
     } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.0' 
     classpath group: 'fr.inria.gforge.spoon', 
       name: 'spoon-gradle-plugin', 
       version:'1.0-SNAPSHOT' 
     classpath files('build/classes/main') 


     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

apply plugin: 'java' 
apply plugin: 'spoon' 

spoon { 
    processors = ['com.craftman.spoonprocessor.CustomProcessor'] 
} 

et ci-dessous est mon annotation personnalisée code processeur

public class CustomProcessor extends AbstractAnnotationProcessor<DoInBackground,CtMethod> { 


     @Override 
     public void process(DoInBackground annotation, CtMethod method) { 
      /** 
       my logic 
      **/ 
     } 

    } 

Répondre

1

si je comprends bien que vous essayez de spécifier une cuillère à utiliser votre processeur avec le plugin Gradle. Le plus simple est de suivre les explications qui y sont données: https://github.com/SpoonLabs/spoon-gradle-plugin#how-to-add-processors. En bref, vous créez un module gradle spécifique contenant uniquement le code de votre processeur, vous pouvez alors utiliser presque le même fichier Gradle que vous affichez pour le projet que vous voulez traiter, il suffit d'ajouter une dépendance vers votre nouveau module processeur:

buildscript { 
    repositories { 
     jcenter() 
     mavenLocal() 
     maven { 
      url 'http://spoon.gforge.inria.fr/repositories/' 
     } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.0' 
     classpath group: 'fr.inria.gforge.spoon', 
       name: 'spoon-gradle-plugin', 
       version:'1.0-SNAPSHOT' 
     // here you put your module dependency 
     classpath group: 'com.craftman.spoonprocessor', 
       name: 'customprocessor', 
       version: '1.0_SNAPSHOT' 
     classpath files('build/classes/main') 


     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

apply plugin: 'java' 
apply plugin: 'spoon' 

spoon { 
    processors = ['com.craftman.spoonprocessor.CustomProcessor'] 
} 

Espérons que cela aide!