Как собрать WAR-файл с помощью gradle? - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу создать файл WAR (а затем развернуть его в Tomcat). Итак, в качестве упражнения я начал новый Spring Boot Project, используя Gradle в IDEA IntelliJ. После этого я применил плагин в файле build.gradle, например apply plugin: 'war' ,

Проблема в том, что когда я пытаюсь запустить gradle war в терминале, я не получаю файл войны! Единственное, что происходит, это то, что он сгенерирует \build с 3-мя подпаяльниками classes, resources и tmp, но в них нет WAR.

Что я должен сделать, чтобы получить файл WAR? Я смотрел это видео, но этот парень использует Maven, не занимается сложными вещами и получает войну. Я думаю, что должен быть способ сделать это простым.

Когда я бегу gradle war --info

Initialized native services in: C:\Users\...\.gradle\native The client 

...

Задача: compileJava UP-TO-DATE Разрешение глобального управления зависимостями для проекта «deleteme» Исключая [org.apache.tomcat: tomcat-annotations-api] Исключая [] Пропуск задачи ': compileJava', поскольку она актуальна. : compileJava (Поток [Задача для ':', 5, main]) завершен. Заняло 0,753 сек. : processResources (Поток [Задача для ':', 5, main]) запущен.

Задача: processResources UP-TO-DATE Пропуск задачи ': processResources', поскольку она актуальна. : processResources (Поток [Задача для ':', 5, main]) завершен. Заняло 0,003 сек. : классы (поток [работник задачи для ':', 5, main]) запущен.

Задача: занятия до даты Пропуск задачи: классы, так как не имеет действий : классы (поток [работник задачи для ':', 5, main]) завершен. Заняло 0,0 сек. : war (Тема [Рабочий задачи для ':', 5, main]) запущена.

Задание: война пропущена Пропуск задачи ': война' как только задачи, если она ложна. : war (Тема [Рабочий задачи для ':', 5, main]) завершена. Заняло 0,0 с.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Как справедливо сказал @ M.Ricciuti, плагин весенней загрузки отключит задачи jar/war и будет работать только с задачами bootJar/bootWar.Но если вы все еще хотите, чтобы ваш проект был упакован с jar/war задачами, просто добавьте нижеприведенное ниже в ваш build.gradle файл

war {
    enabled=true
}

. Это позволит команде gradle war сгенерировать войну для вашего проекта.

0 голосов
/ 13 сентября 2018

Полагаю, что вы применили плагин весенней загрузки gradle к своему проекту, в дополнение к плагину war? тогда это нормальное поведение, поскольку плагин Spring Boot отключает задачи jar и war и заменяет их задачами bootWar и bootJar .

С подключенным весенним загрузчиком и военным плагином:

./gradlew war
15:35:09: Executing task 'war'...

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :war SKIPPED

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 up-to-date
15:35:10: Task execution finished 'war'.

Обратите внимание на сообщение SKIPPED

$ ./gradlew bootWar
15:36:35: Executing task 'bootWar'...

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootWar

BUILD SUCCESSFUL in 1s
3 actionable tasks: 1 executed, 2 up-to-date
15:36:37: Task execution finished 'bootWar'.

Тогда вы получите ожидаемый файл war в build / libs .

Вы все еще можете повторно включить стандартные задачи jar / war, как описано здесь: https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-wars-deployable (если вам нужно создавать обычные архивы, а не исполняемые архивы)

Относительно проблемы Tomcat: установите Tomcat 8.5.

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