My Gradle构建生成如下工件:
MyAppService-1.2.038.war
。
我不想访问localhost:8080/MyAppSservice-1.2.038
,而是localhost:8080/MyAppService
。
我有几种方法可以做到。一种是重命名战争或重命名爆炸的战争。我想知道这里的最佳做法。 Jenkins将从Nexus中提取文件并推送到运行Tomcat的不同环境。
我可以配置Jenkins在推送之前重命名战争吗?
由于
答案 0 :(得分:0)
我们的解决方案是在构建之后和部署到环境之前使用shell脚本重命名WAR工件(我们使用的是Teamcity,但这样的选项也适合Jenkins)。
我不确定gradle,但我知道maven肯定有<finalName>
属性,允许您显式提供WAR工件的最终名称。我非常确定gradle有它......
(更新:在build.gradle中,您可以设置存档名称:
war.archiveName "YOUR_SPECIAL_NAME.war"
答案 1 :(得分:0)
请参阅Apache Tomcat 7, The Context Container, Naming:
如果要使用与基本文件名无关的上下文路径部署WAR文件或目录,则必须使用以下选项之一来防止双重部署:
- 禁用autoDeploy和deployOnStartup并在server.xml中定义所有上下文
- 在Host的appBase之外找到WAR和/或目录,并使用带有docBase属性的context.xml文件来定义它。