Как сообщить Gradle, где искать javax.servlet? - PullRequest
1 голос
/ 11 июля 2020

Я пытаюсь создать приложение сервлета с gradle в качестве системы сборки. Проблема в том, что gradle не может найти javax.servlet, я получаю эту ошибку:

Could not find javax.servlet:javax.servlet-api:4.0

Я загрузил Tomcat9 с официального сайта и распаковал его в ~ / opt / tomcat9. Есть папка ~ / opt / tomcat9 / lib, в которой находится servlet-api.jar. Я предполагаю, что Gradle ищет именно этот файл jar, но как мне указать путь к нему?

1 Ответ

3 голосов
/ 11 июля 2020

Обычно мы добавляем Servlet API в качестве зависимости compileOnly к нашим проектам. Таким образом, gradle будет использовать JAR для компиляции, но не будет включать его в развертывания. При развертывании ваш веб-контейнер предоставит Servlet API.

Добавьте что-то вроде этого в свое объявление зависимостей:

compileOnly 'org.apache.tomcat:tomcat-servlet-api:9.0.37'

Используя Jar из вашего локального Tomcat теоретически возможен, но я бы избегал зависимостей, не связанных с метаданными, поскольку обычно проще иметь все «в одном месте».

Тем не менее, добавление локального каталога, содержащего JAR-файлы, в ваша сборка будет выглядеть примерно так:

repositories {
    flatDir {
        dirs 'path/to/tomcat/libs'
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...