Tomcat 管理器中的 Web 应用程序版本

Posted

技术标签:

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

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

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

【问题讨论】:

你想如何指定版本?你用的是哪个tomcat? 我使用的是 Tomcat 7.0.11。 所以你暗示##X版本?这不是显示为不同的上下文/应用程序吗? 不知道你说的##X是什么意思? 对不起,我的错,不是那个版本 【参考方案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,服务器将自动重新加载带有名称的上下文。

就是这样!

【讨论】:

以上是关于Tomcat 管理器中的 Web 应用程序版本的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过 IIS 管理器中的用户界面在 web.config ASP .Net Web 应用程序中的 <system.Servicemodel> 中查看/编辑 WCF 配置?

App是通用的,但是资产管理器中的AppIcon没有空间放iPad图标

Web应用优化之nginx+tomcat集群配置+redis管理session

tomcat配置管理:基于多实例的tomcat配置管理

tomcat中虚拟主机 web应用 虚拟路径映射相关问题

任务管理器中的多个应用程序