使用cargo实现jenkins自动部署远程tomcat

转载请标明出处:

http://blog.csdn.net/ouyida3/article/details/48089141

tomcat-users.xml配置

<role rolename="manager"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>

pom.xml配置

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.4.15</version>
    <configuration>
        <container>
            <containerId>tomcat8x</containerId>
            <type>remote</type>
        </container>
        <configuration>
            <type>runtime</type>
            <properties>
                <cargo.tomcat.manager.url>http://32.20.115.125:8080/manager</cargo.tomcat.manager.url>
                <cargo.remote.username>admin</cargo.remote.username>
                <cargo.remote.password>admin</cargo.remote.password>
                <cargo.servlet.port>8080</cargo.servlet.port>
                <cargo.hostname>32.20.115.125</cargo.hostname>
                <cargo.tomcat.ajp.port>8009</cargo.tomcat.ajp.port>
            </properties>
        </configuration>
    </configuration>
</plugin>

测试命令

mvn cargo:redeploy

成功:

F:\code\bss_gd-trunk\mapp\zsale\zsale-web>mvn cargo:redeploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building zsale-web 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- cargo-maven2-plugin:1.4.15:redeploy (default-cli) @ zsale-web ---
[INFO] [DeployerRedeployMojo] Resolved container artifact org.codehaus.cargo:car
go-core-container-tomcat:jar:1.4.15 for container tomcat8x
[INFO] [mcat8xRemoteDeployer] Redeploying [F:\code\bss_gd-trunk\mapp\zsale\zsale
-web\target\zsale-web-0.0.1-SNAPSHOT.war]
[INFO] [mcat8xRemoteDeployer] Undeploying [F:\code\bss_gd-trunk\mapp\zsale\zsale
-web\target\zsale-web-0.0.1-SNAPSHOT.war]
[INFO] [mcat8xRemoteDeployer] Deploying [F:\code\bss_gd-trunk\mapp\zsale\zsale-w
eb\target\zsale-web-0.0.1-SNAPSHOT.war]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 38.813 s
[INFO] Finished at: 2015-08-29T17:23:50+08:00
[INFO] Final Memory: 6M/17M
[INFO] ------------------------------------------------------------------------

ps:第一次运行会下载cargo相关的jar

报错解决方法

运行mvn cargo:redeploy报错

Caused by: java.net.ConnectException: Connection refused: connect

at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:534)

如果tomcat没启动,也会报这个错。如果启动了也报这个错,首先先通过浏览器访问,看看行不行。因为代码里就是使用HttpConnection来connect的。

查看源代码的方法请看下面

如果浏览器可以访问,就是配置错了。

注意:cargo.hostname是必须配置的,如果不配置默认是localhost!也就是说cargo.tomcat.manager.url里配置了什么都是不起作用的。端口也一样,要配置。

源代码代码查看方法

假设使用的是cargo-core-container-tomcat-1.4.9.jar这个版本,则在pom.xml里依赖一下这个jar,然后执行命令mvn dependency:sources即可。这条命令会把pom.xml里依赖的jar都下载源代码,当然,如果本身这个jar是不提供源代码的就不会下载,执行命令的最后会提示哪些下载了哪些没下载。

吐槽一下

许晓斌的《Maven实战》这本书确实非常好。但是,关于cargo远程部署这一章节就有点敷衍了事了!只列举了一个localhost的配置例子,明明是远程部署,怎能用localhost作例子呢?搞得我因为这个导致connection refused错误弄了半天才搞定。

用户名密码错误

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException:

The username and password you provided are not correct (error 401)

如果用户名密码错误,则报这个错。

关于版本

我尝试了1.4.9和最新的1.4.15都没有问题。

tomcat我使用的是tomcat8,containerId尝试了tomcat7x和tomcat8x都可以(tomcat9x当然不行的)。证明tomcat7x的配置也是兼容tomcat8的。

参考

jenkins部署tomcat

http://wxynxyo.iteye.com/blog/1909110 有jenkins的图

http://my.oschina.net/congqian/blog/112782

http://blog.sina.com.cn/s/blog_b5fe6b270102v7xi.html 没试过,好像挺方便

cargo

http://zhouhaitao.iteye.com/blog/1997135

http://blog.csdn.net/steveguoshao/article/details/38469713 较详细

http://www.codeweblog.com/use-maven-cargo-plugin-manager-deployment-tomcat6/ 更详细,但是英文(就是这个文章解决了我的大难题)

cargo官网:

https://codehaus-cargo.github.io/cargo/Home.html

http://cargo.codehaus.org/(以前的官网,现已自动跳转)

扩展-Capitomcat

Capitomcat 是jenkins的插件,据说也可以部署tomcat。但是被墙了!我没试。

Ruby Runtime Plugin 等待

Capitomcat Plugin 等待

重启 Jenkins 等待

Failed to connect to http://www.google.com/. Perhaps you need to

另外,cargo部署分为远程部署和本地部署。本文只讲述前者,因为后者在生产环境意义不大。本地部署比较简单,看看许晓斌的书《Maven实战》或者网上的例子就可。

转载请标明出处:

2015.8.29

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 19:44:46

使用cargo实现jenkins自动部署远程tomcat的相关文章

使用Jenkins 自动部署发布

使用Jenkins自动部署发布,继Jenkins部署篇后: #注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异. jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target 自动发布的脚本存放路径:/data/jenkins/jobs/simple 脚本的内容: 脚本使用的是scp命令,当然也可以使用wget等. [[email protected] simple]# cat de

在Eclipse中使用Maven将Web项目自动部署到tomcat服务器

一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示: 在New窗口中选择 Maven -> Maven Project.点击[next]如下图所示: 1.2 选择项目路径 根据项目的实际情况选择项目的存放目录,也可以选择[Use default Workspace location]默认工作空间.如下图所示: 1.3 选择项目类型 在Artifact Id中选择maven-archetype-webapp,如下图所示

Maven学习教程(七)------将web项目自动部署到tomcat下

一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Maven Project,如下图所示: 点击[next]如下图所示: 选择webapp,点击[next]如下图所示: 输入Group ID和 Artifact ID以及Package Group ID一般写大项目名称.Artifact ID是子项目名称. 例如Spring的web包,Group ID:org.springframework,artifactId:spring-web. Packag

Maven配置一键部署远程Tomcat

1. 首先需要配置远程Tomcat的访问权限(设置访问用户名密码) http://www.cnblogs.com/liuchao102/p/5519345.html 2. 配置pom.xml 添加tomcat插件 <build> <finalName>midou-search</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId>

使用Ansible进行项目的自动部署(Tomcat、Weblogic)

原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible来部署新程序 + 启动停止服务 如何管理?需要哪些配置信息? 采用方案:通过[Ansible](http://www.ansible.com.cn/)来部署新程序+启动停止服务: Java代码使用介绍:1.[AnsibleHelper.java](https://github.com/x113773

Jenkins自动部署Shell脚本

注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用. #!/bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用. ############ 使用注意事项:################################################################################# 注意1:需修改目标主机/etc/ssh/sshd

在Eclipse for mac中配置tomcat,使web项目自动部署到tomcat

jdk.tomcat的配置就不多说了,网上一大堆. 一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并没有出现所建立的工程名字. 二.验证 很明显项目并没有自动部署到Tomcat的Webapps中而是部署在了别的容器中.在内置浏览器中输入http://localhost:8080/webDemo/login.jsp可正常打开.但在外部浏览器上打开h

[转]Eclipse中的Web项目自动部署到Tomcat

原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误,解决后不再使用的话,很长时间重新使用,还是会犯同样的错误.(这是人,编程环境,思维方式 共同决定给的) 问题 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Ecli

Eclipse中的Web项目自动部署到Tomcat

一.原因. 1.写java程序有一段时间了,但很久没用eclipse了,所以使用eclipse编写的web项目部署到tomcat 的方式也不是很清楚,下面记录一下将Eclipse 上的web项目自动部署到tomcat 上的方式: 二.部署问题 1.这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录下,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中