Я новичок в Gradle. Я настроил свой проект как Gradle Project
с плагином Gradle, чтобы конфигурация проекта была перестроена на основе скрипта сборки gradle. Я пытаюсь настроить свое приложение как динамический веб-проект (используя плагин eclipse-wtp
Gradle) и сделать так, чтобы мой проект имел доступ к библиотеке Tomcat Server Runtime
.
По-видимому, способ сделать это в Gradle — настроить его как «предоставленную зависимость», которую следует использовать только для компиляции, но не для развертывания. Однако это не работает для меня при развертывании Tomcat в среде IDE. Похоже, что Gradle настраивает два набора зависимостей: Web App Libraries
, который учитывает предоставленный параметр зависимости, и Grade Dependencies
, который не учитывает. Оба включаются в сборку развертывания веб-приложения, что означает, что "предоставленные" файлы jar Tomcat развертываются и предотвращают запуск Tomcat.
Как настроить Gradle, чтобы предотвратить автоматическое включение Gradle Dependencies
в экран сборки развертывания Eclipse? Я не могу удалить его вручную, так как он просто обновится при следующем запуске Gradle.
Я уже пробовал Remove Gradle Dependency Management
(щелкните проект правой кнопкой мыши -> Gradle -> Удалить управление зависимостями Gradle), но это не работает. Это решает проблему Tomcat, но тогда мои тестовые зависимости больше не находятся на пути сборки, что приводит к ошибкам в моих модульных тестах.
Вышеупомянутое на самом деле работает, если вы затем также вручную Gradle -> Refresh All
. Это заставит плагин Gradle Eclipse повторно сгенерировать файлы конфигурации, а зависимости, которые не являются частью Web App Libraries
, будут включены в Referenced Libraries
.
Gradle -> Remove Dependency Management
просто удалит библиотеку Grade Dependencies
, и этого недостаточно.
Я использую:
- Затмение Луна SR1a (4.4.1)
- Плагин Gradle IDE 3.7.0 (https://marketplace.eclipse.org/content/gradle-integration-eclipse-0)
Это библиотека, которая вызывает проблемы, она включает в себя "предоставленные" банки Tomcat:
Это мой файл build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
webAppDirName = 'WebContent'
// <snip>
dependencies {
providedCompile('org.apache.tomcat:tomcat-catalina:7.0.34')
// <snip>
}
// snip