2016-10-21 4 views
0

Gradle используется для создания простого веб-приложения, разбитого на несколько проектов eclipse в пределах одной рабочей области. Сценарий Gradle запускает тесты/создает разворачиваемый EAR-файл. EAR-файл работает без каких-либо проблем на сервере профиля Liberty.зависимости от затмения gradle, пропуски testCompile/providedRuntime и т. Д.

Однако у меня проблемы с запуском его из затмения (с плагином градации). Корень проблем, по-видимому, представляет собой автоматическое управление «степенью градации» (совокупность зависимостей, которые вводятся «контейнером класса» org.springsource.ide.eclipse.gradle.classpathcontainer). Эта вещь, похоже, подбирает любую зависимость, будь то compileOnly, testCompile, providedCompile и т. Д. Это приводит к libs с такими классами, как javax.persistence., Javax.inject, которые необходимы для автономной сборки, но предоставляются сервером приложений и не являются необходимый при запуске из eclipse, развертывается на сервере приложений как часть приложения и вызывает всевозможные ошибки/предупреждения.

Есть ли способ фильтровать зависимости, которые плагин gradle eclipse собирает для развертывания?

ответ

0

Это долговечная проблема с инструментами градиента STS. Это связано с тем, что gradle-tooling-api не различает между предоставленными/тестовыми и т. Д. Зависимостями в модели, которую он создает для «пути класса eclipse». По крайней мере, это было так, когда была применена инструментальная техника STS. С тех пор модель оснастки-api эволюционировала, но инструментальная аппаратура STS постепенно прекращается, и вряд ли это станет реальным решением.

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

Перейти к Window >> Preferences >> Gradle (STS) >> WTP. Там вы увидите список регулярных выражений с пометкой Gradle Dependencies Deployment Exclusions. Вы можете добавить туда больше выражений. Они действуют как глобальный фильтр. Любая банка, соответствующая одному из этих выражений, будет исключена из сборки развертывания WTP.

Это может сработать для вас.

Однако, это немного грубое решение проблемы.

Итак ... Я слышал, что BuildShip, который является официальным преемником STS Gradle-tooling, теперь has WTP support. Поэтому, возможно, вы хотите попробовать переключиться на BuildShip. Я бы предположил, что он правильно справляется с предоставленными, тестовыми и т. Д. Зависимостями w.r.t до сборки развертывания WTP (если это не так, вам следует рассмотреть вопрос об отправке отчета об ошибке с помощью BuildShip).

+0

Спасибо, очень полезно! (обратите внимание, что я не могу продвигать ваш комментарий, так как у меня недостаточно очков репутации :() – Kartu

Смежные вопросы