以我为例,我在本地里有装tomcat,并且我也有自己的ECS服务器(也装有tomcat)。
1. 配置各个端tomcat的tomcat-users.xml文件,添加用户和权限,并赐予用户某些权限,各个端的tomcat可以用户和密码要是一样的,用户的权限是必须包含manager-gui,manager-script
<role rolename="manager-gui"/> <role rolename="manager"/> <role rolename="manager-script"/> <!-- username 用户名,password 密码,roles 权限 --> <user username="admins" password="123456" roles="manager-gui,manager-script"/>
配置完后,启动tomcat,访问:http://ip:port/manager 和http://ip:port/manager/text路径,输入用户名和密码后,出现下图便算成功!
ps: tomcat版本6或以下的,不用去访问http://ip:port/manager/text
2. 配置maven conf下的setting.xml文件,在servers标签下添加以下代码:
<server> <id>tomcat7</id> <!-- 要与tomcat的tomcat-users.xml设置的用户和密码一致 --> <username>admin</username> <password>123456</password> </server>
3. 配置项目的pom.xml文件,在profiles中配置不同端的tomcat访问:
(1).添加profiles标签以及tomcat的配置内容,代码如下:
<!-- 配置不同的环境 --> <profiles> <!-- 配置本地服务器 --> <profile> <!-- id区分不同的服务器 --> <id>dev</id> <properties> <!-- 用于Glogs命令 --> <profiles.active>dev</profiles.active> <deploy.url>http://localhost:8080/manager/text</deploy.url> </properties> <!-- 是否默认部署的tomcat --> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- 配置云服务器 --> <profile> <id>ecs</id> <properties> <profiles.active>ecs</profiles.active> <deploy.url>http://ip:port/manager/text</deploy.url> </properties> </profile> </profiles>
(2).在build标签,plugins标签添加tomcat的插件,代码如下:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <!-- 根据golas命令,操作对应Tomcat的信息,并引用其url --> <url>${deploy.url}</url> <!-- 此处的名字必须和setting.xml中配置的ID一致--> <server>tomcat7</server> <!-- 此处的名字是项目发布的工程名--> <path>/${project.build.finalName}</path> </configuration> </plugin>
4. 编写不同端的gloas命令,右键maven项目,run as --> 第二个maven build:
tomcat7:deploy 部署到设置默认tomcat
tomcat7:redeploy 修改到设置默认tomcat
tomcat7:deploy -P ecs 部署到profiles.active标签为ecs的tomcat
tomcat7:redeploy -P ecs 修改到profiles.active标签为ecs的tomcat
PS:后面两项命令请根据各自的profiles.active标签值为准
成功的话,在对应tomcat的manager下会有该项目
已知部署不成功的问题:
1. java版本不对应导致编译出错,解决修改java版本并右键maven项目,mave-->Updata Project。
2. 无法连接tomcat。查看tomcat的配置是否正常并访问http://ip:port/manager正常
总结:maven项目多部署,利用了部署方式的第二种,这种多部署方式,缺点有以下几点:
第一,每个tomcat设置的用户和密码是一致的,信息比较统一,容易被管理也容易被盗取
对于我来说,我可以将maven项目,以第三种部署方式进行部署本地,以第二种部署方式来进行部署服务器,这样,开发过程种可以随时随地修改java文件,等功能完善的差不多,便可以发布到服务上。