Переходные зависимости в Maven2 - PullRequest
1 голос
/ 07 октября 2010

Я только начал использовать Maven2 после использования Ant в течение последних 3 лет.Пока что мне нравится то, что я вижу, но я все еще разбираюсь в структуре инструмента и его интеграции с IntelliJ, а также о том, что происходит в фоновом режиме.

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

Рассмотрим мой очень простой проект Java EE (простые веб-сервисы), состоящий изиз следующих модулей: core (персистентные сущности и универсальный DAO с реализацией JPA), ejb-компонент (веб-сервис ejb3 - зависит от ядра) и веб-приложение (весенний веб-сервис - зависит от ядра).

Я установил модуль ядра и он доступен в репозитории, и я добавил его как зависимость моего модуля ejb и моего модуля веб-приложения с областью компиляции.Однако, если у меня нет зависимости javaee api в моем модуле webapp, он не скомпилируется.На данный момент мой исходный код POJO без метаданных.

Любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 07 октября 2010

Однако, если в моем модуле webapp нет зависимости javaee api, она не скомпилируется. На данный момент мой исходный код POJO без метаданных.

Веб-приложениям (и модулям Java EE в целом) в большинстве случаев требуется зависимость времени компиляции от API-интерфейсов Java EE, таких как API сервлетов и т. Д., Которые будут предоставлены во время выполнения контейнер. При использовании Maven такие зависимости объявляются с provided scope . Например:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>6.0</version>
  <scope>provided</scope>
</dependency>

В вашем случае, поскольку вы упоминаете проблему компиляции, я испытываю соблазн сказать, что в вашем модуле веб-приложения действительно отсутствует зависимость от некоторого API, который должен быть объявлен, как упомянуто выше.

Неясно, как это относится к названию вопроса. Возможно, предоставление соответствующей части ваших POM и ошибка точная поможет получить более точный ответ.

Ссылки * * один тысяча двадцать-одна Введение в механизм зависимостей

...