用Maven部署war包到远程Tomcat服务器

来源:互联网 发布:js 获取divcss 编辑:程序博客网 时间:2024/04/28 04:55

目的:运行maven打包war包到远程Tomcat服务器

  1. 项目pom.xml文件中配置插件
    <!--利用Maven部署war包到远程tomcat服务器  -->  <properties>        <warPackageName>MavenWarTest</warPackageName>        <tomcat.deploy.server>localTestServer</tomcat.deploy.server>        <tomcat.deploy.serverUrl>http://localhost:8080/manager/text</tomcat.deploy.serverUrl>   </properties>    <profiles>        <profile>            <id>deploy2production</id>            <properties>                <tomcat.deploy.server>productionServer</tomcat.deploy.server>                <tomcat.deploy.serverUrl>http://192.168.3.33:8080/manager/text</tomcat.deploy.serverUrl>            </properties>        </profile>    </profiles>     <build>    <finalName>MavenWarTest</finalName>  <!-- 利用Tomcat的manager模块进行war包部署 -->    <plugins>          <plugin>              <groupId>org.apache.tomcat.maven</groupId>              <artifactId>tomcat7-maven-plugin</artifactId>              <version>2.2</version>              <configuration>                    <server>${tomcat.deploy.server}</server>                    <url>${tomcat.deploy.serverUrl}</url>                    <path>/${warPackageName}</path>                </configuration>          </plugin>      </plugins>
    这个叫“tomcat7-maven-plugin”的插件是利用Tomcat的“manager”模块来实现war包部署的,所以必须确保Tomcat安装了Manager模块,(看看webapp下有没有Manager目录)它虽然名字带“tomcat7”,但Tomcat8也适用,我用的就是Tomcat8。接下来我们对本地的Tomcat的manager模块进行一些配置,打开本地Tomcat的conf/tomcat-users.xml文件,增加这样的配置:
    <user username="deployer" password="654321" roles="manager-script"/>
    这个叫“deployer”的用户,角色设定为“manager-script”,表明他可以使用Tomcat的manager模块的后台脚本管理,BTW,如果角色为“manager-gui”则表示此用户可使用manager模块的前端网页管理。然后对正式服务器(我这里是在192.168.3.33上)的Tomcat也做一个类似的配置。
  2. 接下来继续讲解一下tomcat7-maven-plugin的配置:
Configuration→Server

Configuration中的server是个变量,叫tomcat.deploy.server,我并没有写死,因为我们要将WAR包部署到不同服务器去,而这个变量则由前面的properties来确定,我们可以看到,properties中,tomcat.deploy.server被赋值为localTestServer,这就是我们的默认值,但通过调整Maven的运行参数,我们可以将它修改为别的值,那么localTestServer又表示什么呢?我前面说了,服务器的密码是自己定的,而且不希望别人知道,别的开发组员能各自决定自己本地服务器的密码,但他们无需知道我的密码,所以这个localTestServer的相关的内容是定义在“~/.m2/settings.xml”中的,在Windows7下默认就是在“C:\Users\(用户名)\.m2\settings.xml”这里,看个人而定,就是在你配置的maven的settings.xml中。打开这个配置文件,在servers中增加两个server,也就是我们要将程序部署上去的两个server。

<servers>      <server>          <id>productionServer</id>             <username>deployer</username>            <password>654321</password>      </server>      <server>          <id>localTestServer</id>          <username>deployer</username>          <password>654321</password>      </server>    </servers> 

注意上面的配置是tomcat里的账号和密码,id为pom.xml文件里配置的

Configuration→url

Configuration中的url也是个变量,很显然,我也不能把它写死,但它不像用户名和密码那么敏感,所以直接出现在POM.XML中也无所谓,默认情况下,其值是“http://localhost/manager/text”,这个地址便是Tomcat的Manager模块的后台脚本入口,url的值同样可以通过Maven的运行参数调整。

Configuration→path

要将WAR包部署到哪里去?要指定一个path,如果path为“/”,也就是部署为传说中的ROOT.WAR,这次我们指定了一个名为MavenWarTest(项目pom.xml文件中的<warPackageName>标签设置的值)的path。部署成功之后可以通过http://localhost/MavenWarTest来访问。

3、配置完成,在eclisep中使用maven运行打包自动部署 
ok,配置已经完成了,主要是1、项目中的pom.xml文件;2、Tomcat里的conf/tomcat-users.xml文件;3、Maven中的settings.xml文件;
下面在eclipse中用maven进行运行打包部署

最后,点apply,debug或run即完成,查看eclipse控制台是否显示BUILD SUCCESS,成功后就访问远程服务器的程序。
注意:运行maven时,必须保证的Tomcat是启动状态


1 0
原创粉丝点击