Управление зависимостями в Java с использованием аннотаций - PullRequest
1 голос
/ 20 мая 2011

Я довольно широко использую maven во всех моих java-проектах (а также в некоторых не-java-проектах). Тем не менее, я большой поклонник перемещения конфигурации из XML-файлов в исходные файлы Java с использованием аннотаций. Недавно я нашел следующее на странице Groovy Grape:

Добавить зависимость

@Grab(group='org.springframework', module='spring', version='2.5.6')
import org.springframework.jdbc.core.JdbcTemplate

Хотя это Groovy-код, кажется, что вышеперечисленное не должно быть абсолютно невозможным в Java. Хотя кажется маловероятным, что это могло (или могло бы) быть встроено в сам javac, это что-то, что могло бы быть встроено в Maven или какую-то другую сборочную «обертку».

Что ты думаешь?

РЕДАКТИРОВАТЬ: Мне только что пришло в голову, что аннотации недействительны для операторов импорта в Java. Это создает проблему ...

Ответы [ 3 ]

0 голосов
/ 20 июня 2011

Не думаю, что вам понравится идея аннотировать все ваши классы аннотациями зависимостей. По этой причине классы сгруппированы в модули, называемые модулями или проектами, так что разрешение импорта или зависимости одного артефакта можно использовать для всех классов в конкретной группе или модуле.

Однако, вы, вероятно, станете большим поклонником Gradle. Хотя это не совсем аннотации, Gradle решает большинство ваших проблем.

http://www.gradle.org/

0 голосов
/ 12 января 2012

Технически возможно написать * .java файлы препроцессора на любом языке (groovy, python, antlr), который будет обрабатывать файлы и генерировать pom.xml (лучше просто заполнить раздел зависимостей в существующем pom.xml) на основе аннотацийи структура модуля (аннотации должны быть прокомментированы, чтобы не мешать подсветке компилятора Java и IDE, как старый XDoclet).Я полагаю, это идея для вашего собственного проекта).Однако с моей точки зрения это плохая идея.Что произойдет, если вы захотите сменить весеннюю версию?Если вы отсканируете все файлы проекта и замените его, после этого перекомпилируйте.Сборка и конфигурация должны быть отделены от кода.

0 голосов
/ 20 мая 2011

Вы можете создать препроцессор для аннотаций, чтобы проанализировать ваш источник для этих типов аннотаций. Проверьте Javadocs здесь .

...