【问题标题】:Remove version from war to be deployed to Tomcat?从战争中删除版本以部署到 Tomcat?
【发布时间】:2016-10-29 23:54:39
【问题描述】:

我的 Gradle 构建生成的工件如下:

MyAppService-1.2.038.war.

我不想访问localhost:8080/MyAppSservice-1.2.038,而是想访问localhost:8080/MyAppService

我有几种方法可以做到这一点。一种是重命名战争或重命名爆炸战争。我想知道这里的最佳做法。 Jenkins 将从 Nexus 中提取工件并推送到运行 Tomcat 的不同环境。

我可以配置 Jenkins 在推送之前重命名战争吗?

谢谢

【问题讨论】:

    标签: tomcat jenkins gradle war


    【解决方案1】:

    我们的解决方案是在构建之后和部署到环境之前使用 shell 脚本重命名 WAR 工件(我们使用的是 Teamcity,但这样的选项也适合 Jenkins)。

    我不确定 gradle,但我确信 maven 有一个 <finalName> 属性,它允许您明确提供 WAR 工件的最终名称。我很确定 gradle 有它......

    (更新:在 build.gradle 中您可以设置存档名称:

    war.archiveName "YOUR_SPECIAL_NAME.war"
    

    Check gradle reference)

    【讨论】:

    • 我不想在build.gradle中设置,因为“build.gradle”的发布插件应该将archive-{version}.war发布到artifactory
    • 所以我想最好的做法是在发布后手动重命名它,使用 shell 脚本。
    【解决方案2】:

    Apache Tomcat 7, The Context Container, Naming:

    如果要使用与基本文件名无关的上下文路径部署 WAR 文件或目录,则必须使用以下选项之一来防止重复部署:

    • 禁用 autoDeploy 和 deployOnStartup 并在 server.xml 中定义所有 上下文
    • 在主机的 appBase 之外找到 WAR 和/或目录,并使用带有 docBase 属性的 context.xml 文件来定义它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2015-01-06
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      相关资源
      最近更新 更多