如何通过Terminal命令将Web应用程序部署到tomcat应用程序服务器

时间:2013-10-09 15:49:55

标签: bash tomcat deployment

我目前正在测试大量的网络服务。我想尽快通过terminal命令部署和取消部署到tomcat应用服务器。对于我需要部署的大量Web服务,使用HTML GUI是不合理的。任何人都可以帮助我,如何通过终端命令部署?

此外,我正在编写一个自动化部署过程的ash脚本,所以如果有人可以给我一些方向,那就太好了。

理想情况下,我希望在命令行上执行以下操作:

TOMCAT --parameter指定WAR文件的路径--parameter2 - 指定某种配置文件

3 个答案:

答案 0 :(得分:2)

要从命令行部署WAR,您可以使用wget(或curl)

wget "http://localhost:8080/manager/text/deploy?war=file:/path/to/MyWar.war&path=/MyApp" -O -

答案 1 :(得分:2)

首先,您需要确保tomcat-user.xml配置了正确的用户和角色。最小角色配置是" admin,manager-script":

  1. 找出tomcat的安装位置。您可以在bash中执行此操作:catalina version
  2. 导航到CATALINA_HOME配置目录,该目录显示在上一个命令的输出中。
  3. cd /usr/local/Cellar/tomcat/8.0.22/libexec/conf
    
      
        
    • 注意:在我的示例中,我使用自制软件来安装tomcat 8,将此路径替换为命令行输出中显示的内容。
    •   
    1. 验证 server.xml 是否包含 UserDatabase 资源(如果它没有添加):
    2.   
        <GlobalNamingResources>
            <Resource name="UserDatabase" auth="Container"
                type="org.apache.catalina.UserDatabase"
                description="User database that can be updated and saved"
                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                pathname="conf/tomcat-users.xml" />
        </GlobalNamingResources> 
      
        

      默认情况下,tomcat使用内存数据库来存储用户和角色。这是在conf / server.xml中配置的。代表用户&amp;角色声明到conf / tomcat-users.xml文件。有关详细信息,请参阅:http://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html#UserDatabaseRealm

      1. 然后验证 config / user-tomcat.xml 是否存在,如下所示:
      2.   <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd">
             <role rolename="admin"/>
             <role rolename="manager-script"/>
             <user username="admin" roles="admin,manager-script" password="admin" />
          </tomcat-users>
        

        现在,您已准备好部署战争!

        以下是两种方法......

        使用wget:

          

        wget是一个非常好的工具,可以让您通过命令行执行http请求。我建议使用homebrew等软件包管理器安装它,否则,您可以使用此wget install guide进行安装。

        1. 首先重启服务器,以获取您可能已完成的任何配置更改。 catalina stop,然后是catalina start,将从bash中抄袭 *注意:当使用wget开始向tomcat部署war时,需要首先启动tomcat。
        2. 现在执行以下命令:
        3. wget --http-user=admin --http-password=admin  "http://localhost:8080/manager/text/deploy?war=file:/Users/yourusername/app/target/APP-1.0.0.war&path=/app"
          

          注意:

          • 等待几秒钟让http请求发送并完全部署战争。 (有时需要一段时间)。

          • 您可能会尝试使用主目录快捷方式(例如file:~/app/target/APP-1.0.0.war)引用war文件,但这不会起作用。

          • 要取消部署战争,只需在wget命令中将deploy替换为undeploy

          使用Tomcat Maven插件:

            

          如果您有源代码,则可以使用tomcat7-maven-plugin轻松自行构建和部署战争。注意:在我写这篇文章的时候,没有tomcat8-maven-plugin; tomcat-7-maven-plugin适用于tomcat 8。

          1. 将插件添加到pom.xml:
          2. <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>${version.tomcat.maven.plugin}</version>
              <configuration>
                <path>/${project.build.finalName}</path>
                <configurationDir>${env.CATALINA_HOME}</configurationDir>
                <additionalConfigFilesDir>${env.CATALINA_HOME}/conf</additionalConfigFilesDir>
                <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
              </configuration>
            </plugin>
            
            1. 导航到 pom.xml 所在的项目根目录,然后运行以下命令:mvn tomcat7:run

答案 2 :(得分:1)

看看Tomcat的manager webapp。您可以使用“text”界面从命令行执行操作。 Tomcat甚至附带了一些Apache Ant任务,可以为您部署,取消部署等。