maven远程部署项目
概述:
在开发当中往往都会有一个测试服务器给项目组用来部署项目做测试。那么问题来了。大家都是怎么来部署项目到这台测试服务器呢?,如果你项目正好使用了Maven,那下面的内容是你的菜。go go go
环镜说明:
linux:centos6
tomcat:7.0.57
jdk:1.6.45
第一步:在需要部置项目的POM文件中加入tomcat7-maven-plugin
<!--远程部署到TOMCAT调试--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <url>http://192.168.1.174:80/manager/text</url> <server>api-server</server> <uriEncoding>UTF-8</uriEncoding> <path>/api</path> </configuration> </plugin>
第二部:为了能够正确下载到所需要的tomcat7-maven-plugin,还要在POM文件中配置以下内容(如果是多模块项目,在parent的POM中配置)
2.1在repositorys节点下添加:
<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>
2.2在pluginRepositories节点下添加:
<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>
第三步:在maven的setting.xml文件中添加server节点
<servers> <server> <id>api-server</id> <username>admin</username> <password>admin</password> </server> </servers>
说明:<id>的取值对应第一步中<server>的取值,<sername>和<password>是用来登录tomcat的用户名。所以下一步就是配置tomcat了。
第四步:配置测试服务器上的Tomcat,在tomcat-users.xml中配置如下内容
<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="admin" password="admin" roles="manager-gui,manager-script"/>
说明:这里配置的用户名和密码需要和第三步一至
第五步:启动tomcat(注:要发布现在启动服务,服务不启动是连不上的哦)
第六步:发布项目
tomcat7:deploy
tomcat7-maven-plugin有很多命令,可以自己去找下用法,我这里用的是IDEA发布很方便:
如果发布一切正常,那么就可以通过浏览器访问了。不需要自己去重启Tomcat了。Tomcat支持热部署。
遇到的问题:
1:OutOfMemoryError: PermGen space (这个问题,是由于tomcat默认的永久代太小
解决办法:修改tomcat的JVM启动参数 (tomca/bin/catalina.sh) 在cygwin=false前
JAVA_OPTS="-Xms256m-Xmx512m -Xss1024K-XX:PermSize=128m-XX:MaxPermSize=256m"