【问题标题】:Web app version in Tomcat ManagerTomcat 管理器中的 Web 应用程序版本
【发布时间】:2011-09-14 21:29:30
【问题描述】:

如何配置我的 Web 应用程序以在 Tomcat 中部署,以便 Tomcat 管理器在列出所有已安装应用程序的表 (/manager/html/list) 中显示版本?

目前它为所有应用(包括其自身)显示“未指定”。我正在使用 Tomcat 7.0.11。

【问题讨论】:

  • 你想如何指定版本?你用的是哪个tomcat?
  • 我使用的是 Tomcat 7.0.11。
  • 所以你暗示##X版本?这不是显示为不同的上下文/应用程序吗?
  • 不知道你说的##X是什么意思?
  • 对不起,我的错,不是那个版本

标签: java tomcat web-applications version


【解决方案1】:

版本是通过管理器部署应用时指定的版本。

the documentation:

tag:指定标签名称,这允许将部署的 webapp 与版本号相关联。应用程序版本可以在需要时仅使用标签在以后重新部署。

此外,您可以通过在## 之后添加版本来部署同一战争的多个版本(例如 myApp##1.0.war、myApp##1.1.war)。经理将在概览中显示此版本。

【讨论】:

  • 我试过了,但 Tomcat 管理器中的版本仍然是“未指定”。
  • 哪个?这 ##?如果是这样,那么只有我的答案的第一部分是您正在寻找的。​​span>
  • 1.0 放在 web.xml 中不起作用。命名战争文件 myapp##002.war 确实如此。谢谢。
  • 请注意,版本号需要两个哈希值,例如:myApp##1.1.war。使用单个哈希会将部署路径更改为 myApp/1.1/,这可能不是您想要的。
  • 新文档(Tomcat 7.0.96)没有提到这一点。 tomcat.apache.org/tomcat-7.0-doc/…
【解决方案2】:

用maven设置输出war文件名:

...
<artifactId>MyTest</artifactId>
<version>0.0.1</version>
...
<build>
    <finalName>${project.artifactId}##${project.version}</finalName>
</build>
...

输出 -> MyTest##0.0.1.war

或者用 file_name##version.war 格式简单地重命名战争文件;)

【讨论】:

    【解决方案3】:

    对于maven,使用tomcat插件配置路径:

    <project>
        ...
        <build>
            ...
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/${project.artifactId}##${project.version}</path>
                    </configuration>
                </plugin>
            </plugins>
            ...
        </build>
        ...
    </project>
    

    finalName 技巧对我不起作用。

    【讨论】:

    • 这是自动部署过程。你才是真正的 MVP。
    【解决方案4】:
    • 就我而言,myapp#v0.2.1 表示法不起作用。
    • 我试过tag参数,也不行..(用maven调用)

    参考Apache Documentation,我尝试手动部署war文件,它可以工作。

    我不明白为什么它不适用于 maven tomcat deploy

    Configuration : Simple Java EE/restlet app with Tomcat 7 / Java 7 / Maven 4 
    

    【讨论】:

    • 那是因为你需要使用双哈希。 myapp##v0.2.1 应该可以工作。
    • 等等什么?马文4?我也想试试!
    • 我尝试了双哈希,它有效。借助 Maven 技巧,我成功地用 tomcat manager 完美地构建和部署了它
    • 我使用了 Tomcat 8.0.28,尝试使用 pom.xml 中的 以及 ##,但没有成功。我可以在控制台localhost:8028/manager/text/… 中看到 maven 打印。但它没有显示在版本列中。最后我们决定在 Application v1.1 标签本身中添加版本号,以便它显示在显示名称列本身中
    • web.xml: &lt;web-app blahblah&gt;&lt;display-name&gt;sometext&lt;/display-name&gt;…
    【解决方案5】:

    我正在运行 Tomcat 8.0.30 并在 Tomcat Web 应用程序管理器中添加一个版本 可以简单地将 MyApp(在 webapps 文件夹下)重命名为 MyApp##1.0.2 而无需创建 .war 文件。

    如果要创建.war 文件,请按以下步骤操作:

    • 导航到 Tomcat webapps 文件夹,在地址栏输入 cmd 或 cmd.exe 或者你可以打开 cmd 并导航到你的 tomcat webapps 目录

    • 输入这个 cmd - jar cvf MyApp.war .

    这里 MyApp 是 应用程序的名称.war 是创建 war 文件的扩展名(也称为 Web 应用程序存档)和 .表示将创建war文件的当前目录..

    完成此操作后,您将在 webapps 下看到 MyApp.war 文件。现在只需重命名为MyApp##1.0.2.war,服务器将自动重新加载带有名称的上下文。

    就是这样!

    【讨论】:

      最近更新 更多