使用cargo实现jenkins自动部署远程tomcat
2015-08-29 18:04
856 查看
转载请标明出处:
/article/2029652.html
本文出自:【ouyida3的博客】
成功:
ps:第一次运行会下载cargo相关的jar
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里配置了什么都是不起作用的。端口也一样,要配置。
The username and password you provided are not correct (error 401)
如果用户名密码错误,则报这个错。
tomcat我使用的是tomcat8,containerId尝试了tomcat7x和tomcat8x都可以(tomcat9x当然不行的)。证明tomcat7x的配置也是兼容tomcat8的。
http://wxynxyo.iteye.com/blog/1909110 有jenkins的图
/article/3482098.html
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/(以前的官网,现已自动跳转)
Ruby Runtime Plugin 等待
Capitomcat Plugin 等待
重启 Jenkins 等待
Failed to connect to http://www.google.com/. Perhaps you need to
另外,cargo部署分为远程部署和本地部署。本文只讲述前者,因为后者在生产环境意义不大。本地部署比较简单,看看许晓斌的书《Maven实战》或者网上的例子就可。
然后配置maven的
尤其注意的是,maven的profile都要激活的,所以下面还得配置一下activeProfiles:
转载请标明出处:
本文出自:【ouyida3的博客】
2015.8.29
/article/2029652.html
本文出自:【ouyida3的博客】
tomcat-users.xml配置
[code]<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配置
[code]<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成功:
[code]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部署tomcathttp://wxynxyo.iteye.com/blog/1909110 有jenkins的图
/article/3482098.html
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实战》或者网上的例子就可。
配置settings.xml
从上面的pom.xml可以看到,用户名密码都公开了,这显然是不好的,可以修改一下,通过settings.xml把密码隐藏起来。[code]<configuration> <container> <containerId>tomcat8x</containerId> <type>remote</type> </container> <configuration> <type>runtime</type> <properties> <cargo.tomcat.manager.url>${cargo.tomcat.manager.protocol}://${cargo.tomcat.manager.hostname}:${cargo.tomcat.manager.port}/manager</cargo.tomcat.manager.url> <cargo.remote.username>${cargo.tomcat.manager.username}</cargo.remote.username> <cargo.remote.password>${cargo.tomcat.manager.password}</cargo.remote.password> <cargo.servlet.port>${cargo.tomcat.manager.port}</cargo.servlet.port> <cargo.hostname>${cargo.tomcat.manager.hostname}</cargo.hostname> <cargo.tomcat.ajp.port>${cargo.tomcat.manager.ajp.port}</cargo.tomcat.ajp.port> </properties> </configuration> </configuration>
然后配置maven的
conf/settings.xml
[code]<profile> <id>cargo</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <cargo.tomcat.manager.protocol>http</cargo.tomcat.manager.protocol> <cargo.tomcat.manager.hostname>32.20.115.125</cargo.tomcat.manager.hostname> <cargo.tomcat.manager.port>8080</cargo.tomcat.manager.port> <cargo.tomcat.manager.ajp.port>8009</cargo.tomcat.manager.ajp.port> <cargo.tomcat.manager.username>admin</cargo.tomcat.manager.username> <cargo.tomcat.manager.password>admin</cargo.tomcat.manager.password> </properties> </profile>
尤其注意的是,maven的profile都要激活的,所以下面还得配置一下activeProfiles:
[code]<activeProfiles> <activeProfile>cargo</activeProfile> </activeProfiles>
转载请标明出处:
本文出自:【ouyida3的博客】
2015.8.29
相关文章推荐
- Tomcat在RedHat Linux上的安装与配置
- Apache与Tomcat
- Apache与Tomcat 区别联系
- Tomact 常见问题
- Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config
- 今天遇到一问题:用eclipse+tomcat开发网页的时候,每次修改jsp页面都需要重启服务器,不重启会报错
- tomcat和resin
- tomcat-usrs.xml 配置示例
- Tomcat Context reload 与 OutOfMemory(PermSpace)
- 关于tomcat出现闪退问题
- tomcat安装
- Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- 用tomcat+apacheServer+spring搭建一个集群,实现简单的负载均衡
- 怎么把Tomcat以服务的形式挂在服务器上
- Tomcat启动,java.lang.NoSuchMethodError错误
- tomcat下server.xml中context 配置静态资源
- Tomcat的配置文件 -- server.xml(二)
- Tomcat架构详解(二)
- Tomcat架构详解(一)
- tomcat7配置环境变量