`
crabdave
  • 浏览: 1295005 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven cargo 远程自动部署war

 
阅读更多

Maven cargo 远程自动部署war

 

        如果不使用maven构建项目,则可以直接考虑将war包直接通过cargo远程部署到远端服务器上

(也就是说先创建个maven项目,打好包,再通过shell脚本,将所需要的项目打成war包,放到target目录下,对war包进行覆盖)。

 

打war包:

cd 项目目录,即WEB-INF所在目录

jar -cfM0 /app/proj-1.0-SNAPSHOT.war ./

 

1、创建maven项目

 

mvn archetype:generate

 

2、在pom.xml中配置maven-war-plugin和cargo-maven2-plugin

 

<build>
	<plugins> 
	
        <plugin>  
            <groupId>org.codehaus.cargo</groupId>  
            <artifactId>cargo-maven2-plugin</artifactId>  
            <version>1.4.9</version>  
            <configuration>  
                <container>  
                    <containerId>tomcat5x</containerId>  
                    <type>remote</type>  
                </container>  
                <configuration>  
                    <type>runtime</type>  
                    <properties>  
                        <cargo.remote.uri>http://你的IP:8080/manager</cargo.remote.uri>  
                        <cargo.remote.username>admin</cargo.remote.username>  
                        <cargo.remote.password>admin</cargo.remote.password>  
                    </properties>  
                </configuration> 
				<deployables>  
				   <deployable>            
					<groupId>${project.groupId}</groupId>    
					<artifactId>${project.artifactId}</artifactId>    
					<type>war</type>    
					<properties>    
						<!-- 使用根路径,作为上下文 --> 
						<context>/</context>  
					</properties>    
					<!-- 可选:验证是否部署成功 -->  
					<pingURL>http://你的IP:8080</pingURL>  
					<!-- 可选:验证超时时间,默认是120000 毫秒-->  
					<pingTimeout>60000</pingTimeout>  
                   </deployable>  
                </deployables>  
            </configuration>  
        </plugin> 
<!--  本地部署
		<plugin>  
            <groupId>org.codehaus.cargo</groupId>  
            <artifactId>cargo-maven2-plugin</artifactId>  
            <version>1.4.0</version>  
            <configuration>  
                <container>  
                        <containerId>tomcat5x</containerId>  
                        <home>D:\Tomcat5.5</home>  
                </container>  
                <configuration>  
                    <type>existing</type>  
                    <home>D:\Tomcat5.5</home>  
                </configuration>    
            </configuration>  
        </plugin>  
-->
		<plugin>  
			<groupId>org.apache.maven.plugins</groupId>  
		    <artifactId>maven-war-plugin</artifactId>  
			<version>2.2</version> 
			<configuration>  
				<webXml>src\webapps\WEB-INF\web.xml</webXml>  
			</configuration>  
		</plugin>  
    </plugins>
</build>

</project>

 3、修改tomcat配置

Tomcat5.5\conf\server.xml

 

       <Host

          appBase="webapps"

          name="localhost">

           <!--上面cargo进行部署时使用的根路径,这里就不要配置了-->

          <!--  Context path="" docBase="app" debug="0" reloadable="false" crossContext="true"/-->

<!--配置tomcat的manager  http://localhost:8080/manager/html-->

          <Context path="/manager" docBase="/app/Tomcat5.5/server/webapps/manager" debug="0" privileged="true"/>

       </Host>

 

Tomcat5.5\conf\tomcat-users.xml   添加

<role rolename="admin"/>

<user username="admin" password="admin" roles="admin,manager"/>

 

Tomcat8 则使用

<role rolename="admin"/>

<user username="admin" password="admin" roles="admin,manager-script,manager-gui"/>

相关权限都可以在/webapps/manager/WEB-INFO/web.xml里找到

发布主要使用manager-script权限,界面的展示主要使用manager-gui权限

访问的地址:http://你的IP:你的端口/manager/

 

同时POM中的配置也需要调整:

<containerId>tomcat8x</containerId>  

<cargo.remote.uri>http://127.0.0.1:8080/manager/text</cargo.remote.uri>

 

 

 <configuration>    
                <container>    
                    <containerId>tomcat8x</containerId>    
                    <type>remote</type>    
					<timeout>120000</timeout>
                </container>    
                <configuration>    
                    <type>runtime</type>    
                    <properties>    
                        <cargo.remote.uri>http://127.0.0.1:8080/manager/text</cargo.remote.uri>
                        <cargo.remote.username>admin</cargo.remote.username>    
                        <cargo.remote.password>admin</cargo.remote.password>    
                    </properties>    
                </configuration>   
 
对于上传的war包过大的问题,也可以进行一些配置/webapps/manager/WEB-INFO/web.xml

 

    <multipart-config>
      <!-- 50MB max -->
      <max-file-size>-1</max-file-size>
      <max-request-size>-1</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>

 改成-1不再受限制,默认的是50M

 

出现这个错误时需要修改如下文件

org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application.

Tomcat5.5\conf\context.xml

<Context>替换成<Context reloadable="true" privileged="true">

 

4、启动Tomcat

 

5、进入项目目录,即pom.xml文件所在目录 

mvn clean install package

mvn cargo:deploy 或者 mvn cargo:redeploy 或者 mvn cargo:undeploy

查看日志信息可以加 -X  例如:mvn cargo:deploy -X

 

 注意:

如果是发布在根路径,即使用http://你的IP:你的端口/

需要把webapps/ROOT 删除,以避免冲突

 

 

分享到:
评论

相关推荐

    maven cargo自动化部署tomcat7.pdf

    要实现Cargo对Tomcat7的远程部署,需要对Tomcat的conf/tomcat-users.xml文件进行配置。添加具有管理权限的角色(manager、admin等),并创建具有相应角色的用户。这是为了确保当使用Cargo插件远程访问Tomcat服务器...

    maven自动部署war包到tomcat.doc

    "Maven自动部署WAR包到Tomcat" Maven自动部署WAR包到Tomcat是将Maven项目打包成WAR包并自动部署到Tomcat服务器的过程。下面是该过程的详细步骤: 步骤一:配置Tomcat 在Tomcat安装目录下找到tomcat-users.xml文件...

    使用Maven Cargo 插件管理Tomcat6的部署

    Cargo与Maven结合使用,可以实现自动化部署流程,极大地提高了开发效率。 要使用Maven Cargo插件,我们需要在项目的`pom.xml`文件中添加插件配置。以下是一个基本的配置示例: ```xml ... ... &lt;groupId&gt;...

    maven-tomcat自动部署

    除了上述插件,还可以使用Maven的Cargo插件或者Jenkins等自动化工具实现更复杂的部署策略,如热更新、滚动更新等。这些工具和插件使得开发者能够专注于编写代码,而无需担心部署过程中的繁琐操作。 总结来说,Maven...

    cargo远程部署web项目资料

    在这个"cargo远程部署web项目资料"中,我们将会探讨如何利用Cargo和Maven来实现远程Web项目的自动化部署。 1. **Cargo简介** Cargo是由Codehaus组织开发的工具,它提供了一种统一的方式来管理Java应用服务器,支持...

    maven 自动发布更新本地和远程仓库

    标题 "maven 自动发布更新本地和远程仓库" 指的是 Maven 的自动化构建和部署功能,这在软件开发过程中非常关键。Maven 是一个Java项目管理工具,它可以帮助开发者管理项目的构建、依赖关系和文档生成。在这个场景下...

    maven自动部署到远程普通tomcat6服务器

    为了能够通过Maven进行远程部署,首先需要对Tomcat6服务器进行相应的配置。 ##### 1. 添加管理员账户 在`/conf/tomcat-users.xml`文件中增加一个具有`manager`权限的角色和用户: ```xml ``` 这里创建了一个名...

    Hudson+Maven+SVN 自动部署

    同时,你还需要确保Maven的设置文件(如settings.xml)正确配置了服务器凭据和远程部署的repository。此外,可能还需要根据项目需求定制POM文件,添加或调整构建阶段和插件。 通过这样的自动化流程,团队可以快速...

    maven 多war部署

    在开发环境中,你可以通过运行Maven的install命令来构建整个项目,并将每个WAR文件部署到本地仓库或远程服务器。如果需要在同一个Tomcat服务器上部署多个WAR应用,可以使用Maven的Tomcat插件(maven-tomcat-plugin或...

    hudson+maven+svn自动化部署

    ### 自动化部署的核心知识点详解 #### 一、自动化部署的环境搭建 自动化部署的核心在于构建一个稳定且高效的持续集成/持续部署(CI/CD)环境。为了实现这一目标,通常需要以下几项关键技术组件: 1. **JDK (Java ...

    maven 远程部署tomcat

    Maven 远程部署 Tomcat 容器是指使用 Maven 插件将 Java Web 项目自动部署到 Tomcat 容器中,这样可以免去手工拷贝的重复工作。这种方法可以大大提高开发效率和项目部署速度。 Maven 部署 Tomcat 容器的配置 要...

    maven项目跨机器部署

    myeclipse中maven的一些常见功能总结;借助maven将本地项目部署到远程tomcat容器。

    jenkins实现maven项目自动部署到tomcat

    ### Jenkins 实现 Maven 项目自动部署到 Tomcat 在当今快速发展的软件开发环境中,持续集成(CI)与持续部署(CD)已经成为不可或缺的部分。本文将详细介绍如何利用 Jenkins 实现 Maven 项目的自动部署到 Tomcat ...

    jenkins+git+maven搭建自动化部署环境

    jenkins+git+maven搭建自动化部署环境说明文档,详尽的说明

    配合m2eclipse,改造tomcatPluginV321根据maven的依赖自动热部署

    标题中的“配合m2eclipse,改造tomcatPluginV321根据maven的依赖自动热部署”涉及了两个主要的开发工具集成:M2Eclipse(Maven插件)和Tomcat Plugin V321,以及它们如何协同工作以实现基于Maven依赖的自动热部署。...

    K8S+DockerCE+Jenkins+Maven+Gitlab自动化打包部署

    "K8S+DockerCE+Jenkins+Maven+Gitlab自动化打包部署" 以下是从给定的文件中生成的知识点: 一、概述 * 自动化打包部署是指将程序从开发到部署的整个流程自动化,以提高研发效率和生产效率。 * 本文将介绍使用 K8S...

    maven 简单示例+部署

    Maven的部署涉及到`distributionManagement`模块,它定义了如何发布你的项目到远程仓库。在`pom.xml`中添加如下配置: ```xml &lt;id&gt;your-repo-id &lt;url&gt;http://your-repo-url&lt;/url&gt; &lt;id&gt;your-snapshot-repo...

    maven集成tomcat支持热部署

    7. 将Maven项目部署到Tomcat服务器,选中WAR包,右键点击"Run As" -&gt; "Run on Server",Eclipse会自动将项目部署到Tomcat。 8. 实现热部署的关键是启用Tomcat的热部署功能。在Eclipse中,选中Tomcat服务器,右键...

Global site tag (gtag.js) - Google Analytics