Автопроводка аннотаций в классах из зависимых фляг - PullRequest
9 голосов
/ 08 февраля 2011

Я относительно новичок в Java, поэтому надеюсь, что это не глупый вопрос.

У меня есть веб-проект в Eclipse, который я пытаюсь развернуть в Tomcat. У меня есть два зависимых проекта в Eclipse, которые компилируются в файлы .jar и развертываются в каталог / WEB-INF / lib.

Это нормально, но, к сожалению, Spring не сканирует аннотации в зависимостях, если файлы классов из .jars не извлечены в каталог / WEB-INF / classes.

Есть ли простой способ сделать это извлечение во время сборки? Я использую Maven. Я написал командный файл на данный момент, чтобы сделать это (я разрабатываю для Windows, развертываю на Ubuntu)

У меня есть вопросы о том, как автоматизировать это для развертывания сервера, хотя я что-то не так делаю? Конечно, я не единственный, кто борется с этой проблемой.

Ответы [ 4 ]

10 голосов
/ 08 февраля 2011

Согласно этому Весеннему выпуску , если вы создаете JAR-файлы в Eclipse с помощью мастера Экспорт ...> Java> JAR-файл , то необходимо установить флажок Добавить записи каталога (по умолчанию не отмечен) для Сканирование компонентов в Spring для поиска компонентов в файлах JAR.

6 голосов
/ 08 февраля 2011

Я думаю, что весна сканирует весь путь к классу, вы просто должны предоставить:

<context:component-scan base-package="org.example"/>

В документах есть примечание :

Проверка пакетов classpath требует наличия соответствующих записей каталога в classpath. Когда вы создаете JAR-файлы с помощью Ant, убедитесь, что вы не активируете переключатель «только для файлов» задачи JAR.

0 голосов
/ 05 июня 2013

@ Чин Хуан,

Большое спасибо за ваш ответ.

Я генерировал .jar с использованием Eclipse и никогда не думал, что это может быть проблемой.

Я сгенерировал .Jar, используя ANT, и это решило проблему.Иногда слишком много вариантов сбивают вас с толку, это был один из таких случаев.

0 голосов
/ 09 февраля 2011

Поскольку вы упомянули, что вы также используете аннотации

 <context:annotation-config/> 
 <context:component-scan base-package="org.example"/>

- это то, что вам нужно в вашем примере * .xml файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...