一次面试中,被问到MAVEN自动化远程部署的问题,现在查补缺漏:
转自: Maven入门示例(3):自动部署至外部Tomcat
提示:这篇博文用的是localhost做测试的,只要把localhost换成远程的IP即可。
1、 安装Tomcat 7
1) 将Tomcat 7的安装包解压至C:\opensource,并将文件夹重命名为tomcat-7.0.34,得到的目录结构如下
2) 新建系统变量CATALINA_HOME,值为:C:\opensource\tomcat-7.0.34
3) 在系统变量 Path的最后面添加%CATALINA_HOME%\lib; %CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar 注意它们之间的分号,一定是英文的分号。
4) Tomcat 7.0的管理员的配置,进入C:\opensource\tomcat-7.0.34(Tomcat目录)下的conf目录,编辑tomcat-users.xml,找到最后的:
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
在上面这段后面 添加上:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script"/>
红色为添加部分。从中可以看出管理员的用户名和密码!
5) 进入Tomcat 目录下的bin目录,双击startup.bat 启动Tomcat 在命令行窗口会出来英文提示。
6) 浏览器输入:http://localhost:8080 可以看到Tomcat的欢迎页面就说明配置成功了,点击右上角上manager连接,输入上面配置的用户名和密码,就可以进入管理页面。
补充: 使用外部的tomcat7 需要使用 tomcat-maven-plugin 的新版本,版本支持tomcat6和tomcat7,groupId也已经由之前的org.codehaus.mojo改为org.apache.tomcat.maven。 可以参考:Maven的Tomcat插件地址为,http://tomcat.apache.org/maven-plugin.html。无需手动下载,按照本文配置,MyEclipse会自动下载到相应的tomcat-maven-plugin插件
2、修改项目的pom.xml
1)在project的build节点下 添加tomcat-maven-plugin插件信息,如下写法添加了tomcat6和tomcat7的插件,如只用1种可以只写一个
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<url>http://localhost:8080/manager/html</url>
<server>tomcat</server>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat7</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
</plugins>
--2.0-SNAPSHOT版本已经release了
2) 在project节点下,在插件仓库(plugin repositories)和普通仓库(repositories)中添加以下仓库到pom.xml,保证maven可以从仓库中下载到tomcat-maven-plugin插件,少添加了这段信息,会出现如下报错信息:
No plugin found for prefix 'tomcat' in the current project and in the plug
<repositories>
<repository>
<id>people.apache.snapshots</id>
<url>
http://repository.apache.org/content/groups/snapshots-group/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshots</name>
<url>
http://repository.apache.org/content/groups/snapshots-group/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
3.配置setting.xml
1)修改%MAVEN_HOME%\conf\setting.xml(前提是在myeclipse preferences中maven启用本地安装版本并设置用户setting.xml为本地conf下的setting.xml)。
在<servers>标签中加入
<server>
<id>tomcat7</id>
<username>admin</username>
<password>admin</password>
</server>
注意这里用户名、密码必须为manager-gui角色的用户,这里设置需要与之前tomcat配置时的角色分配对应起来。
4.启动tomcat
运行请先启动tomcat,在maven build的goals中输入命令tomcat7:deploy即可发布,或在Run Configurations->Maven build新建一个命令,base directory里选择你的web project,在Goals栏可填写你所需要的命令,点击Run或者Debug后,MyEclipse会自动下载所需的插件并在Console启动Tomcat。
5、测试
打开浏览器,输入http://localhost:8080/helloworld,即可见到发布的Helloworld页面。同时,你也可以在C:\tomcat-7.0.34\webapps看到helloworld工程和helloworld.war包了。
如果点击run后,Console报错,请参见下一篇错误排除
###################################################################################