首页 > 其他分享 >Maven cargo 远程自动部署war

Maven cargo 远程自动部署war

时间:2023-04-28 18:32:53浏览次数:47  
标签:xml cargo http Maven manager maven 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 删除,以避免冲突

 

 

标签:xml,cargo,http,Maven,manager,maven,war
From: https://blog.51cto.com/u_9716826/6235305

相关文章

  • maven deploy configuration
    inpom.xml,theconfigwillbebelow:<repositories> <repository> <id>com.nomura.xxx</id> <url>http://XXXXXXX:8080/archiva/repository</url> </repository> </repositories> <distributionMana......
  • MAVEN MavenResourcesFiltering NoClassDefFoundError
    MAVENMavenResourcesFiltering NoClassDefFoundError [WARNING]Errorinjecting:org.apache.maven.plugin.resources.ResourcesMojojava.lang.NoClassDefFoundError:Lorg/apache/maven/shared/filtering/MavenResourcesFiltering; 解决办法一(估计是maven插件包的问题):删除.m......
  • MAVEN 配置nexus setting.xml 配置
    MAVEN配置nexussetting.xml配置 <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://192.168.1.104:8081/nexus/content/groups/public/</url> </mirror> <profile> <id>nexus&......
  • Redis WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/s
    RedisWARNING:TheTCPbacklogsettingof511cannotbeenforcedbecause/proc/sys/net/core/somaxconnissettothelowervalueof128. 内核参数默认128,对于负载很大的服务是不够的。改为2048或者更大echo2048> /proc/sys/net/core/somaxconn  系统重启后失效v......
  • jar包运行后显示 没有主清单属性 IDEA 使用maven打jar包两种方式及pom配置
    jar包运行后显示没有主清单属性IDEA使用maven打jar包两种方式及pom配置原文链接:https://blog.csdn.net/weixin_42585386/article/details/115334503目录问题现象:问题分析:解决方法:问题现象:        jar包运行后显示没有主清单属性!问题分析:1. 缺少了项目......
  • IDEA从零到精通(21)之使用Maven clean发生错误Process terminated
    IDEA从零到精通(21)之使用Mavenclean发生错误Processterminated原文链接:https://blog.csdn.net/dkm123456/article/details/121871870文章目录作者简介引言导航热门专栏推荐错误描述解决方案:再次clean小结导航热门专栏推荐作者简介作者名:编程界明世隐简介:CSDN博客......
  • 解决 VMware 虚拟机 Linux /dev/mapper/ubuntu--vg-ubuntu--lv 磁盘空间不足的问题
    之前在VMware安装UbuntuServer的时候磁盘分区选择了LVM,所以系统根目录默认占用磁盘大小只有4G,在安装软件时发现磁盘空间4G已经无法满足,所以需要利用LVM对磁盘进行扩容使用Docker拉取MySQL镜像时发现磁盘空间不够:nospaceleftondeviceroot@ubuntu:~#......
  • Maven指令打包SpringBoot项目提示没有主清单文件
    Maven指令打包SpringBoot项目提示没有主清单文件原文链接:https://blog.csdn.net/greedystar/article/details/86068314项目打包为Jar后,通过java-jarxxxxx.jar运行时提示xxxxx.jar中没有主清单属性,如下:打开jar包,META-INF目录下的MANIFEST.MF,内容如下:Manifest-Version:1.0A......
  • maven中切换国内源
    国外镜像下载包非常慢,于是使用国内阿里云的,找到~/.m2目录,但是不存在settings.xml,于是手动创建一个,然后贴入一个样例 <settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://mave......
  • 在我的mac mini上安装好maven后再次创建项目遇到同样的问题,再次记录一下
    默认生成的maven项目,使用mvnarchetype:generate按照提示生成的项目,使用mvncompile编译过后,mvnpackage,因为已经有jar的plugin了,java-jartarget/projct1.jar出现找不到主类,此时要配置pom.xml里面的maven-jar-plugin,方法是在下面添加配置段:<configuration><archive>......