загрузочный проект gradle spring: Как переименовать файлы в war? - PullRequest
0 голосов
/ 05 сентября 2018

Я создаю веб-приложение, используя Spring Boot. Я хотел бы изменить некоторые имена WEB-INF / lib / *. Jars в финале.

Если я правильно понимаю документы, это должно работать с использованием метода «переименовать» задачи bootWar (подкласс стандартной военной задачи), который предоставляется плагином spring-boot-gradle-plugin.

Однако метод "переименования" никогда не выполняется вообще, т.е. если я добавлю это в свой build.gradle:

   bootWar {
      rename { name ->
        println "***** " + name
        name
    }

тогда вообще ничего не печатается. Перегрузки метода "переименования", которые принимают исходный шаблон и шаблон замены, также не работают.

Я пробовал это на примере проекта, и там он тоже не работал:

  • использовать Spring Initializr с зависимостью "Web" для создания нового проекта
  • изменить apply plugin: 'java' на apply plugin: 'war'
  • добавить конфигурацию bootWar сверху

1 Ответ

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

Вам необходимо вызвать rename метод для bootWar.rootSpec следующим образом:

bootWar {
    rootSpec.rename { name ->
        println "***** " + name
        name
    }
}

Тогда у вас будет рука для переименования необходимых вам библиотек:

> Task :bootWar
***** MANIFEST.MF   
***** spring-boot-starter-web-2.0.4.RELEASE.jar 
***** spring-boot-starter-aop-2.0.4.RELEASE.jar 
***** spring-boot-starter-2.0.4.RELEASE.jar
( ...)

Я не знаю причин для этого, но закрытие rename из War будет применяться только к ресурсам, расположенным в каталоге src/main/webapp вашего проекта, но не к другим ресурсам (таким как зависимости). Вы можете подтвердить это, создав фиктивный ресурс src/main/webapp/foo.txt и выполнив тестовый скрипт:

$ ./gradlew bootWar

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