2014-02-06 2 views
37

Мы используем Spring 4.0.1.RELEASE в сочетании с jdk6 (это исправлено). Конечно, мы сделали конфигурацию на Java с использованием аннотации @PropertySource. Это приводит к раздражающей предупреждающее сообщение (ы), когда мы составляем проект с Gradle:Повторяющийся не найден при использовании Spring 4 PropertySource

org\springframework\context\annotation\PropertySource.class(org\springframework\context\annotation:PropertySource.class): warning: Cannot find annotat ion method 'value()' in type 'java.lang.annotation.Repeatable': class file for java.lang.annotation.Repeatable not found

Это обусловлено использованием не (в JDK6) существующего Повторяется класса, и я рад, что это просто предупреждение. Мне нравится чистый выход градиента, и это просто раздражает, потому что он может запутывать другие «настоящие» предупреждения (например, checkstyle ...).

Возможно, кто-то столкнулся с той же проблемой и получил (не так много взлома) решение для этой ситуации. Я просто хочу снова увидеть чистый результат.

+0

той же проблема с Maven и JDK 1.7. –

ответ

27

Я думаю, что проблема заключается в том, что в Spring 4, они используют @Repeatable аннотацию, которая только была введена в Java 8.

Поэтому, если вы не используете Java 8, вы продолжите эту проблему, по крайней мере, до тех пор, пока эта проблема не будет исправлена.

BTW, это также предотвращение использования @Scheduled аннотацию в старых JDKs, чем Java 8. Я надеюсь, что это будет исправлено в ближайшее время.

+0

Да, это причина. Наша цель состояла в том, чтобы получить чистую продукцию в конце концов. Это просто раздражает, чтобы получить эти предупреждения. Я ищу что-то вроде фильтра для выходов градиентов или аналогичного подхода. – meistermeier

+1

См. Ссылку ниже, это может быть полезно. http://www.javacodegeeks.com/2013/11/how-to-using-propertysource-annotation-in-spring-4-with-java-7.html Кстати, вы можете отметить вопрос как 'ответил' если у вас есть ответ :) – AlonL

+0

еще не исправлен в 4.1.0.RELEASE – coderatchet

1

Я думаю, если вы просто хотите, чтобы избавиться от этого предупреждения вы можете быть в состоянии достичь этого с помощью пользовательского регистратора: http://www.gradle.org/docs/current/userguide/logging.html

Я бы проверить текущую реализацию, и обернуть его в чем-то, что отфильтровывает предупреждение, которое вы хотите игнорировать, перенаправляя все остальное без изменений.

9

Просто для записей: Используйте

@PropertySources(@PropertySource("classpath:path/to/config")) 

, чтобы избавиться от исключения.

Кредиты идут на: http://www.javacodegeeks.com/2013/11/how-to-using-propertysource-annotation-in-spring-4-with-java-7.html

+0

Это просто предупреждение, которое меня беспокоит.Поскольку я должен использовать jdk6, проблема все еще остается нерешенной, но спасибо за поддержку. – meistermeier

+0

Или .. если вы используете ant и -Werror ... ошибка [javac]: обнаружены предупреждения и заданы -Werror – ticktock

0

Обходной избавиться от предупреждения ниже Java 8, чтобы использовать следующий подход вместо @Scheduled аннотации:

@PostConstruct 
public void setupTaskScheduler() throws FileNotFoundException { 
    taskScheduler = new ConcurrentTaskScheduler(); 

    taskScheduler.schedule(new Runnable(...), new CronTrigger("0 0 * * * *"));  
} 
Смежные вопросы