您的位置:首页 > 运维架构 > Tomcat

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

2017-02-16 20:59 513 查看
目的:运行maven打包war包到远程Tomcat服务器

项目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也做一个类似的配置。
接下来继续讲解一下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是启动状态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven tomcat