`

maven日记(九):使用Maven构建Web应用

阅读更多

>> 使用jetty-maven-plugin进行测试

在进行web开发的时候,我们总是无法避免打开浏览器测试,但是需要编译,测试、打包、测试、部署等一系列环节,这个很浪费时间。而jetty-maven-plugin这个插件利用内置的jetty web容器,周期轮训代码更新,省去我们打包和部署步骤,大大缩减测试时间。另外,web测试应该仅限于跟前台密切相关的测试,页面测试等。而后台的测试一定要写单元测试去测。

首先配置jetty-maven-plugin插件:

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>7.1.0.RC1</version>
    <configuration>
        <scanIntervalSeconds>10</scanIntervalSeconds>
        <webAppConfig>
            <contextPath>/account</contextPath>
        </webAppConfig>
    </configuration>
</plugin>

从上面可以看出,这个插件不是官方插件,所以必须在mvn的settings.xml文件中配置一下:

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

现在可以运行如下命令启动jetty-maven-plugin了,默认是8080端口:

# mvn jetty:run

如果希望其他端口启动jetty web容器,命令:

# mvn jetty:run -Djetty.port=9999

这时候,可以在浏览器中输入: http://localhost:9999/account/  测试应用了

>> 使用Cargo实现自动化部署:

Cargo是一组帮助用户操作Web容器的工具,它能够帮助用户实现自动化部署。支持所有的Web容器。Cargo通过cargo-maven2-plugin提供了Maven集成。虽然cargo-maven2-plugin和jetty-maven-plugin的功能看起来相似,但是它们目的是不同的。jetty-maven-plugin主要是帮助开发人员快速的启动容器开发,而cargo是帮测试人员快速部署到本地或远程的Web容器中方便集成测试和功能测试等。

—-部署到本地的Web容器—-

Cargo支持两种本地部署方式,分别是standalone和existing模式。standalone是每次构建都从web容器安装目录复制一份配置到用户指定目录中,按照这个配置区部署,而existing是用户指定Web容器的配置目录,然后Cargo会直接使用这些配置并将应用部署到其对应的位置。

使用standalone模式:

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.3.1</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
            <home>D:\lib\apache-tomcat-7.0.34</home>
        </container>
        <configuration>
            <type>standalone</type>
            <home>${project.build.directory}/tomcat7x</home>
            <properties>
                <cargo.servlet.port>8082</cargo.servlet.port>
            </properties>
        </configuration>
    </configuration>
</plugin>

同理,cargo插件的groupId是org.codehaus.cargo,这个不属于官方的两个Maven插件,因此还是要修改.m2文件夹中的settings.xml:

<pluginGroups>
    <pluginGroup>org.mortbay.jetty</pluginGroup>
    <pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>

然后运行:mvn cargo:run,即可访问:http://127.0.0.1:8082/account-web-1.0.0-SNAPSHOT/login.jsp

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

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.3.1</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>8082</cargo.remote.password>
                <cargo.tomcat.manager.url>http://10.68.14.119:8080/manager</cargo.tomcat.manager.url>
            </properties>
        </configuration>
    </configuration>
</plugin>

之后,运行:

# mvn cargo:redeploy

即可部署热应用了,如果容器中已经部署了当前应用,cargo会将它卸载,然后重新部署。

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    基于Maven+ssm+Mysql的日记管理项目.zip

    该项目是一个使用Maven构建,基于SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库的日志管理系统。下面将详细介绍这个项目的核心技术和组成部分。 **1. Maven** Maven是一个项目管理和综合工具,用于自动化...

    spring boot + maven + mybatis + layui

    在IT行业中,Spring Boot、Maven、MyBatis和LayUI这四个技术组件是构建高效、现代化Web应用的关键组成部分。下面将详细解释这些技术及其整合应用。 **Spring Boot** Spring Boot是由Pivotal团队提供的全新框架,它...

    清爽夏日九宫格日记网

    学习使用Maven或Gradle等构建工具可以自动化构建过程。 9. **.settings文件夹**:这是Eclipse项目的特定配置信息,包含用户特定的设置和插件信息,对项目环境的个性化定制有所影响。 10. **使用说明.txt**:此文件...

    appfuse2学习日记

    - **定位**:AppFuse 更像是一个项目的骨架或模板,它通过集成各种工具和技术(如 Java, Maven, Struts 等),提供了快速构建 Web 应用的基础框架。这类似于使用 IDE 的向导功能来创建 Web 项目的过程。 #### 二、...

    清爽夏日九宫格日记网(Eclipse版)

    8. **构建工具**:Maven或Gradle可能被用来管理项目的依赖关系,构建和打包应用。这些工具能够自动化构建流程,提高开发效率。 9. **单元测试与集成测试**:JUnit或TestNG可能用于编写单元测试,确保代码的正确性;...

    尚硅谷_毕业设计之学生管理系统1

    最后,使用Maven构建项目,生成WAR文件部署到Tomcat服务器上。在整个过程中,你可能会遇到各种问题,例如依赖冲突、SQL查询错误、页面渲染问题等,需要不断调试和优化。 这个学生管理系统项目是一个很好的实践机会...

    blog.rar_impossible5ts_java web_springmvc_博客

    在Java Web开发中,SpringMVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构,常用于构建Web应用程序。SpringMVC通过将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可测试性。开发者可以...

    九格宫日记网站源码

    【九格宫日记网站源码】是一个基于Java Web技术栈构建的在线日记记录平台,它融合了现代化的前端技术和数据库管理,旨在提供一个简洁、高效且用户友好的日记撰写环境。这个项目的核心技术包括Java后端开发语言、Ajax...

    My-Travel-Diary:使用Google Maps API的旅行日记

    6. **构建工具**:项目可能使用Maven或Gradle进行依赖管理和构建流程。 7. **版本控制**:由于项目是从Git仓库中获取的,所以很可能包含`.git`目录,这有助于了解项目的历史和版本信息。 8. **配置文件**:如`pom....

    java Web云笔记项目

    Spring MVC是Spring框架的一部分,专门用于构建Web应用程序。它采用模型-视图-控制器(MVC)架构模式,将业务逻辑、数据和用户界面分离。在Spring MVC中,`Controller`处理HTTP请求,`Model`负责业务逻辑和数据,而`...

    j2EE架构师手册+J2EE OA 项目开发日记

    3. **Web层与表示层**:Servlet和JSP是构建Web应用的主要工具,它们负责处理HTTP请求和生成动态内容。手册会讲解如何设计高效、可维护的Web层架构。 4. **业务逻辑层**:EJB是实现业务逻辑的关键,包括Session ...

    云笔记_jsp.zip

    【云笔记_jsp.zip】是一个包含Java毕业设计项目的压缩包,该项目使用了SpringBoot和Maven框架。这个项目的核心目标是构建一个云笔记应用,它可能提供了在线存储、编辑和管理个人笔记的功能,使得用户可以在任何地方...

    J2EE OA项目开发日记

    这通常包括使用Maven或Gradle进行依赖管理,编写清晰的编码规范,设置单元测试,以及使用持续集成工具如Jenkins进行自动化构建和部署。 3. **在JBoss中部署EJB**:Enterprise JavaBeans (EJB) 是J2EE的一部分,用于...

    springboot学习日记(一-六)

    Spring Boot通过“起步依赖”(Starter POMs)来简化项目构建,这些起步依赖是预配置的Maven或Gradle依赖集,包括了Spring框架和其他常用库,如数据访问、Web服务等。例如,`spring-boot-starter-web`提供了Web应用...

    JAVA博客管理系统源码

    - **Spring MVC**:Spring MVC是Spring框架的一部分,用于构建Web应用程序,它处理HTTP请求并返回响应,包括模型、视图和控制器的设计模式。 - **MyBatis**:可能用到MyBatis作为持久层框架,它简化了SQL操作,将...

    JSF(Java Server Faces)学习日记

    **JSF(Java Server Faces)** 是一种Java技术,用于构建Web应用程序的用户界面。它是一种组件化的MVC(Model-View-Controller)框架,旨在简化开发过程,提高开发效率。JSF提供了一系列预定义的UI组件,允许开发者...

    node-v16.11.1-win-x64.zip

    Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非...

    大二下--暑期见习作业(要求+code)-shang学堂

    学生可能需要学习如何使用Maven或Gradle来构建和打包项目。 9. **版本控制**:Git是常见的版本控制系统,用于跟踪代码变更。学生应掌握基本的Git操作,如clone、commit、push和pull。 10. **测试**:了解单元测试...

Global site tag (gtag.js) - Google Analytics