2016-02-03 4 views
0

У меня есть проект maven, и я хочу создать пользовательские аннотации для использования в нем.Обработка Аннотации Maven

Мне нужно, чтобы эти аннотации обрабатывались только при наличии какого-либо параметра, потому что я хочу запустить задачу jenkins.

Как я могу это достичь? Googling, я подумал о создании для него настраиваемого плагина maven, но я не знаю, как обрабатывать аннотации в нем.

Это совершенно новое для меня, и я хотел бы получить ваш совет.

EDIT: Я попытался создать новый плагин maven и с помощью библиотеки отражений найти все классы с аннотацией, но ничего не нашел.

EDIT2: Следующие шаги @Praveen Kumar, я смог создать пользовательский обработчик аннотации, который обрабатывает мои аннотации методов. Но я не знаю, как выполнить аннотированный метод (я не знаю, либо, если это может быть сделано)

@SupportedAnnotationTypes({"*"}) 
@SupportedSourceVersion(SourceVersion.RELEASE_8) 
public class MyProcessor extends AbstractProcessor { 

    @Override 
    public boolean process(Set<? extends TypeElement annotations, RoundEnvironment roundEnv) { 
     for(Element el : roundEnv.getElementsAnnotatedWith(MyAnnotation.class)) { 
      // Execute annotated method??? 
     } 
    } 
} 

PS. Извините за мой английский.

Diego.

+0

возможно [здесь] (http://hannesdorfmann.com/annotation-processing/annotationprocessing101/) некоторая помощь – jah

+0

Пожалуйста, пост несколько примеров того, что вы пытаетесь сделать, что вы пробовали до сих пор. SO не является кодирующей службой – csharpcoder

+0

Это зависит от того, как вы хотите обработать аннотацию и какую версию Java вы используете. Если вы хотите обработать аннотацию с исходным кодом (обычно для генерации кода), то в более старой версии JDK вам нужно использовать apt и API обработки аннотации, измененный с JDK6 (или 7?). Вероятно, поэтому рефлексия не будет работать, потому что она все еще находится на этапе обработки исходного кода. Если вам нужно обработать аннотацию для других целей, тогда вам нужно будет использовать другую технику (например, отражение, но на более поздней фазе сборки в Maven). –

ответ

0

Решение вашего вопроса

  1. Пожалуйста, используйте Maven плагин процессор для обработки пользовательских аннотаций.
  2. вы можете получить плагин процессора maven от this maven repository
  3. Также this example поможет вам.
  4. Как только ваш maven будет полностью/совершенен во всех аспектах, вы можете запустить Jenkins, установив свои цели сборки.
  5. В качестве альтернативы вы можете использовать плагин mojo для обработки/выполнения пользовательских аннотаций. пожалуйста, проверьте это link, если это поможет вам.