Maven构建Web应用

一、jetty-maven-plugin介绍

1. maven中配置 jetty-maven-plugin:

  pom.xml文件中如下配置:

 1 <plugin>
 2     <groupId>org.mortbay.jetty</groupId>
 3     <artifactId>jetty-maven-plugin</artifactId>
 4     <version>7.1.0.RC1</version>
 5     <configuration>
 6         <scanIntervalSeconds>10</scanIntervalSeconds>
 7         <webAppConfig>
 8             <contextPath>/account</contextPath>
 9         </webAppConfig>
10     </configuration>
11 </plugin>

注:在上述配置中,scanIntervalSeconds表示该插件扫描项目变更的时间间隔,如果不进行配置,该元素的默认值是0,表示不扫描,也就失去了自动化热部署的功能;contextPath表示项目部署后的context path,例如这里的值为/account,表示用户可以通过http://hostname:port/account访问该应用。

2. 在启动jetty之前需要在maven的配置文件settings.xml做个改动,以便让maven支持简化的命令好调用jetty插件,配置如下:

     在用户配置文件settings.xml中找到<pluginGroups></pluginGroups>,并在其中添加如下配置:

              <pluginGroup>org.mortbay.jetty</pluginGroup>

  现在就可以运行如下命令启动jetty-maven-piugin:

    $mvn jetty:run

  jetty-maven-piugin会启动jetty,并且默认监听本地的8080端口,并将当前项目部署到容器中,同时会根据用户配置扫描代码改动。

3. 如果希望使用其他端口,可以添加 jetty.port参数,例如:

   $mvn jetty:run -Djetty.port=9990

4. 如要停止jetty,只需要在命令行输入Ctrl+C即可。

如需要进一步研究jetty,可访问页面:http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin

二、使用Cargo实现自动化部署介绍

1. Cargo是一组帮组用户操作Web容器的工具,它能够帮助用户实现自动化部署,而且它支持基础所有的Web容器,如tomcat、JBoss、Jetty等。Cargo通过cargo-mavne2-plugin提供maven集成。

2. 以tomcat7为例,介绍如果自动化将Web应用部署至本地或远程Web容器中。

2.1 部署至本地Web容器

  Cargo支持两种本地部署方式,分别是standalone模式和existing模式,在standalone模式中,Cargo会从Web容器的安装目录复制一份配置到用户指定的目录,然后在此基础上部署应用,每次重新构建的时候,这个目录都会被清空,所有配置被重新生成。在existing模式中,用户需要指定现有的Web容器配置目录,然后Cargo会直接使用这些配置并将应用部署到期对应的位置。下面是配置样例:(在项目的pom.xml文件中配置):

注:如果需要让maven支持cargo的简化命令行调用,需要在maven的setting.xml配置文件中找到<pluginGroups></pluginGroups>,并在其他配置<pluginGroup>org.codehaus.cargo</pluginGroup>

2.1.1 使用standalone模式部署应用至本地web容器 

 1 <plugin>
 2     <groupId>org.codehaus.cargo</groupId>
 3     <artifactId>cargo-maven2-plugin</artifactId>
 4     <version>1.4.9</version>
 5     <configuration>
 6         <container>
 7             <containerId>tomcat7x</containerId>
 8             <home>E:\apache-tomcat-7.0.37</home>
 9         </container>
10             <configuration>
11                 <type>standalone</type>
12                 <home>${project.build.directory}/tomcat7x</home>
13                 <properties>
14                     <!-- cargo默认监听8080端口,可通过此设置其他端口 -->
15                     <cargo.servlet.port>8082</cargo.servlet.port>
16                 </properties>
17         </configuration>
18     </configuration>
19 </plugin>

配置解释:

configuraton元素:

  container元素:

    containerId:容器类型;

    home:容器的安装目录;

  configuration元素:

    type:部署模式;

    home:表示复制容器配置到什么位置,这里的值${project.build.directory}/tomcat7x表示构建输出目录,即target/tomcat7x子目录。

  properties元素:

    cargo.servlet.port:容器监听端口号;

要让Cargo启动tomcat并部署应用,只需要运行:

    $mvn cargo:start

2.1.2 使用existing模式部署应用至本地web容器

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.4.9</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
            <home>E:\apache-tomcat-7.0.37</home>
            </container>
            <configuration>
                <type>existing</type>
                <home>E:\apache-tomcat-7.0.37</home>
            </configuration>
    </configuration>
</plugin>

2.2 部署至远程的正在运行的Web容器

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.4.9</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
            <type>remote</type>
        </container>
        <configuration>
            <type>runtime</type>
            <properties>
                <cargo.remote.username>admin</cargo.remote.username>
                            <cargo.remote.password>admin</cargo.remote.password>
                          <cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url>
            </properties>
        </configuration>
    </configuration>
</plugin>

注:配置的用户需要拥有该容器的相应管理员权限,我的admin用户设置的tomcat权限为“manager-script”,设置此权限即可部署成功,不过建议再设置“manager-gui”权限,这个权限可以让admin用户登陆到tomcat的管理页面。

对于远程部署的方式,container元素的type子元素的值必须是remote,如果不显式指定,Cargo会使用默认值installed,并寻找对应的容器安装目录或者安装包,对于远程部署方式,安装目录或者安装包是不需要的。configuration的type子元素值为runtime,表示既不使用独立的容器配置,也不使用本地现有的本地配置,而是依赖于一个已运行的容器,properties元素用来声明一些容器热部署相关的配置。需要注意,这部分配置元素对于所有容器来说不是一致的,需要查阅对应的Cargo文档。

运行命令:

$mvn cargo:redeploy

既可以部署当前应用,如果容器已经部署该应用,cargo会先将其卸载,然后在重新部署。

如果想进一步了解Cargo,可访问: http://cargo.codehaus.org/Maven2+plugin

时间: 2024-11-01 20:21:39

Maven构建Web应用的相关文章

利用Eclipse中的Maven构建Web项目(一)

利用Eclipse中的Maven构建Web项目 1.新建一个Maven Project,"New-->Other..." 2.选择"Maven Project" 3.选择项目路径 Usedefault Workspace location默认工作空间, 选择项目类型 在Artifact Id中选择maven-archetype-webapp 4.分别输入Group Id.Artifact Id和Package,单击"Finish" 5.Ma

利用Eclipse中的Maven构建Web项目(二)

利用Eclipse中的Maven构建Web项目 1.新建源文件夹,Java Resources鼠标右键,"New-->Source Folder" 2.新建src/main/java   src/main/resources  src/test/java  src/test/resources四个源包 3.双击每个文件夹的Output folder,选择路径 src/main/java和src/main/resources,选择路径target/classes; src/test

Maven构建Web工程项目报错

利用Maven构建Web项目的时候项目报错,pom.xml报错 先右键Maven-Disable Maven Nature,关闭Maven属性 然后再点击Configure-Convert To Maven Project 然后就能消除错误

Eclipse使用Maven构建web项目

Eclipse使用Maven构建web项目 博客分类: J2EE 1.创建Maven项目: 点击“File”菜单,或者通过工具栏的“New”创建Project,如下图所示: 选择Maven->Maven Project,弹出向导对话框,如下图所示: 选中Create a simple project……复选框,其它的设置不变,并点击Next,输入maven项目必须的信息(groupId,artifactid,version),如下图所示: 这里需要选择Packaging,web项目一般选择war

利用Eclipse中的Maven构建Web项目(三)

利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.根据Dynamic Web Module的版本修改Java Compiler中的"Compiler compliance level"的版本 3.设置部署程序集(Web Deployment Assembly),删除含有"test" 4.将Maven的jar包发布到lib下, "A

利用Eclipse中的Maven构建Web项目报错

利用Eclipse中的Maven构建Web项目 1.在进行上述操作时,pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

利用Eclipse中的Maven构建Web项目报错(二)

利用Eclipse中的Maven构建Web项目 1.错误描写叙述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1 [INFO] [INFO] ---------------------------------

使用maven构建web项目

maven安装 1) 下载Maven:http://maven.apache.org/download.html 2) 解压缩下载的zip文件到本地目录下,比如:D:\Maven 3) 添加D:\Maven\bin到环境变量PATH中 4) 在命令行下运行mvn -version  或者 mvn –v查看是否安装成功 5) 安装eclipse插件 Eclipse Marketplace中搜索Maven Integration for Eclipse WTP并下载 为了使得Eclipse中安装的M

Maven的学习资料收集--(四)使用Maven构建Web项目-测试

2014-08-04 23:21 2人阅读 评论(0) 收藏 编辑 删除 目录(?)[+] [-] 在srcmainjava下新建一个Servlet 修改webxml 新建JSP 测试 在上一篇博客里,我们使用Maven构建了一个Web项目,我们在这里写一个简单的Servlet,测试一下. 1.在src/main/java下,新建一个Servlet [java] view plaincopyprint? <span style="font-weight: normal;">

Maven的学习资料收集--(三)使用Maven构建Web项目

新建Maven项目 File - New - Other 选择Maven Project 单击Next 保持默认即可单击Next 选择Archetype为 web app单击Next 输入一些必要信息单击Finish 项目结构如下图 配置项目 在项目上右键单击添加Source Folder 修改Build Path 配置 将项目转换为Dynamic Web Project 设置部署程序集Web Deployment Assembly 从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Ma