针对问题,maven web项目如何部署到容器中,如何测试,如何提交svn,在本篇中就有了答案。
maven的所有操作是通过插件来执行的,插件是maven的核心,所有的执行操作都是基于插件设定了目标,一个插件中可能有多个目标。maven的三套生命周期,都是由其本身插件来完成,除此之外,还有一些实用的插件,如下。
maven之jetty插件
什么是jetty?
jetty是一个纯粹的基于java的网页服务器和java servlet容器。尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用计算机和计算机之间的通信。jetty是eclipse基金会的一部分,是一个自由和开源的项目。该网页服务器被用在Apache ActiveMQ、apache Maven、FUSE、Eclipse等产品上。Jetty也是Lift、Red5、Hadoop等开源项目的服务器。Jetty支持最新的Java Servlet API,支持SPDY和WebSocket协议。
我们可以在myeclipse和eclipse中安装jetty容器,但更为方便快捷,我们可以直接使用maven的jetty插件。
在项目的pom.xml文件中配置 jetty,代码如下:
<span style="font-family:Microsoft YaHei;font-size:14px;"><plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.6.10.v20130312</version>
<configuration>
<scanIntervalSecond>10</scanIntervalSecond>
<webApp>
<contextPath>/test</contextPath>
</webApp>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8083</port>
</connector>
</connectors>
<war>${basedir}/target/vms-maven-3.0.war</war>
</configuration>
</plugin></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"></plugins></span>
在maven的setting.xml文件中配置如下代码:
<span style="font-family:Microsoft YaHei;font-size:14px;"><pluginGroups>
<!-- 配置eclipse插件-->
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups></span>
运行命令: mvn jetty:run
在浏览器中输入:http://localhost:8083/test 来测试应用了。
maven之自动部署到tomcat插件Cargo
什么是cargo?
cargo是一组帮助用户操作web容器的工具,它能够帮助用户实现自动化部署,而且支持几乎所有的web容器,如tomcat、jboss、jetty和GlassFish等,Cargo提供了maven集成,让maven用户可以使用该插件将web项目部署到web容器中。虽然这个插件和上述的jetty插件类似,但是目的不同,jetty插件用来快速开发和测试,而cargo插件主要服务于自动化部署。例如我们输入一条简单的maven命令,就可以将构建项目部署到web容器中,下面我们以tomcat为例介绍此插件。
配置cargo插件
cargo两种模式,standalone模式是cargo会从web容器安装目录复制一份配置到用户指定目录,然后再次基础上部署应用,每次重新构建的时候,目录被清空,然后重新配置。existing模式,用户需要指定现有的web容器配置目录,然后cargo会直接使用这些配置并将应用部署到其对应位置。我们以standalone模式为例。
在主项目的pom.xml中添加如下配置,代码如下所示:
<span style="font-family:Microsoft YaHei;font-size:14px;"> <plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.4</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<home>D:\tomcat\tomcat7</home>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/target/tomcat7x</home>
<properties>
<cargo.servlet.port>8084</cargo.servlet.port>
</properties>
</configuration>
</configuration>
</plugin> </span>
为了避免端口重复,我们设置的端口号为8084。
如果要直接部署到现有的web容器下,需要配置cargo为existing模式,也就是修改<type>为existing,而对应的home元素表示现有的web容器目录,运行mvn cargo:start后就可以在tomcat的webapps下看到部署的maven项目啦。
maven之一键式自动部署到tomcat,插件tomcat-maven-plugin
此插件可以把web应用部署到tomcat下的插件,我们可以使用此插件把web应用一键式部署到一个远程的tomcat中。
修改tomcat的用户名和密码
访问http://localhost:8080/manager/html,在tomcat_install_dir/conf/tomcat-users.xml 中配置一个用户名和密码, 如下所示:
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin123" roles="manager"/>
</tomcat-users></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://127.0.0.1:8080/manager/text</url>
<username>admin</username>
<password>admin123</password>
<path>/${finalName}</path>
<!-- 自动删除上一次部署的war-->
<update>true</update>
</configuration>
</plugin> </span>
然后启动tomcat(必须先启动tomcat, 不然会报错),执行mvn tomcat:deploy命令,引用就部署完毕。
下一篇maven结合svn管理