【发布时间】:2010-09-13 15:23:23
【问题描述】:
有没有办法在 Tomcat 服务器上部署给定的战争文件?我想在不使用网络界面的情况下执行此操作。
【问题讨论】:
标签: java linux tomcat deployment release-management
有没有办法在 Tomcat 服务器上部署给定的战争文件?我想在不使用网络界面的情况下执行此操作。
【问题讨论】:
标签: java linux tomcat deployment release-management
有几种方法可以部署 Tomcat webapp:
pom.xml 中,只需发出目标mvn tomcat:deploy,该插件包含在 Maven 2 中。这假设在 documentation 中解释了几个默认值,您可以在 configure @ 中的行为987654325@。还有其他目标可以让您部署为展开的存档等。所有这些都需要您拥有 Tomcat 用户配置。它位于$CATALINA_BASE/conf/tomcat-users.xml,但由于您已经知道如何使用网络界面,我假设您知道如何配置用户和密码。
【讨论】:
http://localhost:8080/manager/deploy?path=%2Feccount&war=file%3A%2F%2FC%3A%5Ceccount%2Fout%2FWAR-exploded。虽然文件可通过网络浏览器在file:///C:/eccount/out/WAR-exploded 获得。我的tomcat版本是7.0.37。只需将 war 文件复制到 $TOMCAT_HOME/webapps/ 目录即可。 Tomcat 将通过自动分解来部署 war 文件。仅供参考 - 如果您愿意,可以直接对展开的目录进行更新,这对开发很有用。
【讨论】:
war文件怎么办? (不使用自动部署功能)
我们从不使用网络界面,不喜欢它。战争被丢弃在 webapps 和 server.xml 中,根据需要进行编辑。如果您编辑 server.xml,则需要将其退回,但应自动获取 war 文件。我们通常先删除从战争中扩展的目录,这样就不会混淆组件的来源。
【讨论】:
您可以编辑 conf/server.xml 并添加一个像这样指向您的 war 目录的条目
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:\work\learn\jsp\strutsDisplayTag"
workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
否则 你可以将你的 .WAR 文件复制到 tomcat 的 webapps 目录中。
【讨论】:
Tomcat Client Deployer Package 看起来是您需要从命令行部署到远程服务器的内容。从页面:
这是一个包,可用于验证、编译、压缩为 .WAR,并将 Web 应用程序部署到生产或开发 Tomcat 服务器。需要注意的是,此功能使用 Tomcat 管理器,因此目标 Tomcat 服务器应该正在运行。
【讨论】:
你也可以试试这个叫做tomcat-manager的command-line script for managing tomcat。它需要 Python,并通过 HTTP 与包含在 tomcat 中的管理器应用程序对话。您可以从 *nix shell 执行以下操作:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp
和:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
【讨论】: