Maven自动部署至远程Tomcat

来源:互联网 发布:java集合框架 书籍 编辑:程序博客网 时间:2024/05/22 17:10

一次面试中,被问到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报错,请参见下一篇错误排除


###################################################################################






0 0