2016-06-27 2 views
-1

My Gradle build создает артефакты следующим образом:Удалить версию с войны для развертывания в Tomcat?

MyAppService-1.2.038.war.

Я не хочу получать доступ к localhost:8080/MyAppSservice-1.2.038, а скорее localhost:8080/MyAppService.

Есть несколько способов, которыми я могу это сделать. Один из них - переименование войны или переименование взорванной войны. Я хочу познакомиться с лучшей практикой здесь. Дженкинс будет тянуть артефакты от Nexus и подталкивать в разные среды, которые управляют Tomcat.

Могу ли я настроить Дженкинса на то, чтобы переименовать войну, прежде чем нажимать ее?

Благодаря

ответ

0

Наше решение было переименовывать артефакт WAR, используя скрипт сразу после сборки и до развертывания в средах (мы используем Teamcity, но такой вариант подходит Дженкинс, а).

Я не уверен в градиенте, но я точно знаю, что у maven есть свойство <finalName>, которое позволяет вам явно указать окончательное название артефакта WAR. Я уверен, что Gradle есть это ..

(UPDATE: В build.gradle можно задать имя архива:

war.archiveName "YOUR_SPECIAL_NAME.war" 

Check gradle reference)

+0

Я не хочу, чтобы установить в build.gradle, так как опубликовать плагин из «build.gradle» должен опубликовать архив- {версия} .war для 'artifactory'. –

+0

Итак, я думаю, что лучшая практика будет переименовывать ее вручную после публикации, используя сценарий оболочки. –

0

См Apache Tomcat 7, The Context Container, Naming:

Если вы хотите развернуть WAR-файл или каталог с использованием пути контекста, не связанного с именем базового файла, для предотвращения двойного развертывания необходимо использовать один из следующих параметров:

  • Отключить autoDeploy и deployOnStartup и определить все контексты в server.xml
  • Расположить WAR и/или каталог вне appBase хозяина и использовать файл context.xml с docBase атрибут, чтобы определить его.
Смежные вопросы