Maven系列(四)Maven热部署

来源:互联网 发布:视频制作配音软件 编辑:程序博客网 时间:2024/04/30 03:28
我所在的公司用的是GitLab.CI进行项目额持续集成
就是自己搭建一个集成平台,开发者本地将代码通过Git push到服务器端,服务器自动编译-打包-发布等等,脚本可自己编写。
现有一个任务是将原先的项目发布改成maven热部署,也就是说发布到tomcat中后,不需要重启tomcat。

当我知道有这个功能的时候,内心是喜悦的,也明确了我今后要了解的只是
1、GitLab.CI 的原理
2、脚本的编写
3、maven热部署


第三点,可以在网上查找到很多资料;

第二点,原有的项目里已经有写好的脚本,我在原先的基础上加以修改就行了;

第一点,就是要了解GitLab.CI和要学习的东东;


通过网上查找并结合自身的项目,maven热部署的过程配置总结如下:

1、修改tomcat-user配置文件;

2、修改pom配置文件;

3、修改maven的setting配置文件


修改user配置文件一是为了管理员进入tomcat管理页面并提高其安全性,二是为了在maven设置正确的用户名;
找到tomcat-user配置文件,放掉注释,并修改,如下

<pre name="code" class="html"><role rolename="manager-gui" /><role rolename="manager-script" /><role rolename="admin"/><role rolename="manager"/><user username="tomcat" password="tomcat" roles="manager-gui,manager-script,admin,manager" />

重启tomcat,进入tomcat服务器根目录,点击“manager app”输入用户名和密码,成功进入管理页面,说明第一步配置成功。在pom中加入下面配置        
<plugins>            <!-- tomcat热部署 -->            <plugin>                <groupId>org.codehaus.mojo</groupId>                <artifactId>tomcat-maven-plugin</artifactId>                <configuration>                    <url>http://localhost:8080/manager/text</url><!--地址为tomcat地址>                    <server>tomcat</server>                    <path>/webProject</path><!--部署成功后,可输入localhost:8080/webProject进入项目-->                    <username>tomcat</username><!--对应的用户名-->                    <password>tomcat</password><!--对应的密码-->                </configuration>            </plugin></plugins>


配置maven的setting文件,加入下面配置
<server>       <id>test</id>       <username>tomcat</username>       <password>tomcat</password> </server>

如果上面pom中没有配置用户名和密码,则使用setting里的配置,如果有的话,就是用pom里的配置(就近原则)

配置完记得要maven-update

最后来验证一下:
启动tomcat服务器,保证里面没有发布任何项目;
如果是eclipse,直接右键项目---run as ---maven bulid...输入“tomcat:redeploy”
如果使用的是命令行,直接输入“mvn tomcat:redeploy”

如图


测试通过,输入地址可以正常的访问!

以上是本地的配置,远程服务器也是一样,
修改url、修改tomcat的用户名和密码、修改ci脚本,通过git上传代码后
就会按照ci脚本里的命令来执行!测试也通过,唯一的不足就是“花费时间”,一个项目需要一两分钟
(都是这样还是我这边项目或脚本有问题,希望指出~~~)

可能会遇到的问题
1、项目打包名称的问题,有可能会报“can not found XXX.war包”
检查一下pom里配置项目名和打包后的报名是否一致;
2、出现“Cannot invoke Tomcat manager: Error writing to server
可能是tomcat6或7的问题
将pom里的url改为
http://localhost/manager/text 或http://localhost/manager/html

这是我遇到的两个问题和解决方法


对于GitLabCI,我要了解他的原理和学会编写脚本,并尝试自己搭建一个集成环境~~~






0 0
原创粉丝点击