zoukankan      html  css  js  c++  java
  • 使用Cargo实现自动化部署

    Cargo是一组帮助用户操作Web容器的工具,它能帮助用户实现自动化部署,而且它几乎支持所有的Web容器,如Tomcat、JBoss、Jetty和Glassfish。Cargo通过cargo-maven2-plugin提供了Maven集成,Maven用户可以使用该插件将Web项目部署到Web容器中。

    Cargo支持两种供本地部署方式,分别为standalone模式和existing模式。在standalone模式中,Cargo会从Web容器的安装目录复制一份配置到用户指定的目录,然后在次基础上部署应用,每次重新构建的时候,这个目录会被清空,所以配置被重新生成。在existing模式中,用户需要指定现有的Web容器配置目录,然后Cargo会直接使用这些配置并将应用部署到其对应的位置。

    jetty-maven-plugin主要用来帮助日常的快速开发和测试

    cargo-maven2-plugin主要服务于自动化部署

    <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.0</version>
        <configuration>
            <container>
                <containerId>tomcat6x</containerId>  <!-- 容器的类型 -->
                <home>C://apache-tomcat-6.0.29</home>
            </container>
            <configuration>
                <type>standalone</type>
                <home>${project.build.directory}/tomcat6x</home> <!-- 构建输出目录 -->
            </configuration>
        </configuration>
    </plugin>

    cargo-maven2-plugin的groupId 是org.codehaus.cargo,这不属于官方的两个Maven插件groupId,因此用户需要将其添加到settings.xml的pluginGroup元素中以方便命令调用

    mvn cargo:start  //Cargo启动Tomcat并部署应用

    默认情况下,Cargo会让Web容器坚挺8080端口,可以通过修改Cargo的cargo.servlet.port属性来改变这一配置

    <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.0</version>
        <configuration>
            <container>
                <containerId>tomcat6x</containerId>
                <home>D://apache-tomcat-6.0.29</home>
            </container>
            <configuration>    
                <type>standalone</type>  //existing 将项目部署到现有的Web容器中
                <home>${project.build.directory}/tomcat6x</home>
                <properties>
                    <cargo.server.port>8081</cargo.servlet.port>
                </properties>
            </configuration>
        </configuration>
    </plugin>

    部署应用至远程Web容器

    <plugin>
        <groupId>org.codehaus.cargo</groupId>    
        <artifactId>cargo-maven-plugin</artifactId>
        <version>1.0</version>
        <configuration>
            <container>
                <containerId>tomcat6x</containerId>
                <type>remote</type>
            </container>
            <configuration>
                <type>runtime</type>
                <properties>
                    <cargp.remote.username>username</cargp.remote.username>
                    <cargp.remote.password>password<cargp.remote.password>
                    <cargp.tomcat.manager.url><cargp.tomcat.manager.url>
                </properties>
            </configuration>
        </configuration>
    </plugin>

     对于远程部署的方式来说,container元素的type子元素的值必须为remote。如果不显式指定,Cargo会使用默认值installed,并寻找对应容器安装目录或者安装包。configuration中的type子元素值为runtime,表示既不使用独立的容器配置,也不实用本地现有的容器配置,而是依赖于一个已运行的容器

    mvn cargo:redeploy  //使用Cargo部署应用

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/6253445.html
Copyright © 2011-2022 走看看