Jenkins部署web项目到Tomcat(热部署)

使用这个方式的话须要tomcat中有初始时Manage这个项目,本质上是经过http://ip:port/manager/html这个地址的上传接口进行上传,进行热部署(须要远程tomcat 必须开启 )html

1、需在tomcat中配置用户帐号和权限:

  在conf/tomcat-users.xml中添加以下配置apache

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

2.maven中配置 tomcat 帐号(在后续测试中,未配置,亦可成功构建???)tomcat

  在setting.xml 文件中添加服务器

<server>
   <id>jen-tomcat</id>
   <username>tomcat</username>
   <password>123456</password>
</server>

3.须要在项目的pom.xml中配置maven

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <url>http://192.168.42.129:8090/manager/text</url>
        <update>true</update>
        <server>jen-tomcat</server> 
<username>tomcat</username>
<password>123456</password>
<path>/${finalName}</path>
</configuration>
</plugin>

url:配置本地或者远程的TOMCAT
path:就是在部署上去之后在http://ip:port/manager/html里面看到部署结果
server:就是一个名字和你maven的settings.xml对应的id一致
增长update 配置项,更新发布的文件测试

2、接下来就是在jenkins中的配置

  一、配置构建环境:(须要用tomcat7:deploy部署)ui

    

  二、要遭构建后操做中选择Deploy war/ear to a container(需安装Deploy to container Plugin插件)url

   

    进行配置Tomcatspa

    

WAR/EAR files:是项目的war包位置,这里都是配置为 target/项目名.war插件

Context path:访问项目的路径

Credentails:这里是Tomcat用户,就是配置在tomcat 的conf/tomcat-users.xml 文件中的

而后再点击右侧的add 将用户添加进去  ,只须要添加 用户名 和 密码就能够了

Tomcat URL: 这里写访问Tomcat的路径 http://主机ip:端口号 

 3、保存,而后当即构建

 

这样作有不少弊端:(我的观点,可能由于目前见识短而不够充分认识) 
1. 这样作无法对以前的项目备份 
2. 这种部署方式会致使tomcat内原项目的不少资源释放不掉,部署屡次后会报OutOfMemoryError这个错误. 

因此,综上考虑可以使用另外一种部署方式,使用脚本部署,实际上脚本部署是使用jenkins把打包后的war包上传到服务器,上传成功后执行服务器的脚本,该脚本会备份,并强制kill tomcat进程,部署war包后再启动tomcat

相关文章
相关标签/搜索