我的Gradle構建生成如下的工件:從戰爭中刪除版本以部署到Tomcat?
MyAppService-1.2.038.war
。我不想訪問localhost:8080/MyAppSservice-1.2.038
,而是localhost:8080/MyAppService
。
有幾種方法可以做到這一點。一個是重命名戰爭或重命名爆炸戰爭。我想知道這裏的最佳做法。詹金斯將從Nexus中提取工件並推送到運行Tomcat的不同環境。
在推送之前,我可以配置Jenkins重命名戰爭嗎?
感謝
我的Gradle構建生成如下的工件:從戰爭中刪除版本以部署到Tomcat?
MyAppService-1.2.038.war
。我不想訪問localhost:8080/MyAppSservice-1.2.038
,而是localhost:8080/MyAppService
。
有幾種方法可以做到這一點。一個是重命名戰爭或重命名爆炸戰爭。我想知道這裏的最佳做法。詹金斯將從Nexus中提取工件並推送到運行Tomcat的不同環境。
在推送之前,我可以配置Jenkins重命名戰爭嗎?
感謝
使用shell腳本只是構建後部署到環境之前,我們的解決方案是重命名WAR神器(我們使用TeamCity的,但這樣的選擇適合詹金斯爲好)。
我對gradle沒有把握,但我知道maven有一個<finalName>
屬性,它允許您明確提供WAR神器的最終名稱。我敢肯定有gradle這個它..
(更新:在的build.gradle您可以設置存檔名稱:
war.archiveName "YOUR_SPECIAL_NAME.war"
見Apache Tomcat 7, The Context Container, Naming:
如果要使用與基本文件名無關的上下文路徑部署WAR文件或目錄,則必須使用以下選項之一來防止雙重部署:
- 禁用自動部署和deployOnStartup和定義所有上下文在server.xml中
- 找到WAR和/或目錄主機的的appBase之外,並使用一個context.xml文件與文檔庫屬性來定義它。
我不想在build.gradle中設置,因爲「build.gradle」的發佈插件應該將archive-{version} .war發佈爲'artifactory'。 –
所以我想最好的做法是使用shell腳本在發佈後手動重命名它。 –