>> 使用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(Spring、SpringMVC、MyBatis)框架和MySQL数据库的日志管理系统。下面将详细介绍这个项目的核心技术和组成部分。 **1. Maven** Maven是一个项目管理和综合工具,用于自动化...
在IT行业中,Spring Boot、Maven、MyBatis和LayUI这四个技术组件是构建高效、现代化Web应用的关键组成部分。下面将详细解释这些技术及其整合应用。 **Spring Boot** Spring Boot是由Pivotal团队提供的全新框架,它...
学习使用Maven或Gradle等构建工具可以自动化构建过程。 9. **.settings文件夹**:这是Eclipse项目的特定配置信息,包含用户特定的设置和插件信息,对项目环境的个性化定制有所影响。 10. **使用说明.txt**:此文件...
- **定位**:AppFuse 更像是一个项目的骨架或模板,它通过集成各种工具和技术(如 Java, Maven, Struts 等),提供了快速构建 Web 应用的基础框架。这类似于使用 IDE 的向导功能来创建 Web 项目的过程。 #### 二、...
8. **构建工具**:Maven或Gradle可能被用来管理项目的依赖关系,构建和打包应用。这些工具能够自动化构建流程,提高开发效率。 9. **单元测试与集成测试**:JUnit或TestNG可能用于编写单元测试,确保代码的正确性;...
最后,使用Maven构建项目,生成WAR文件部署到Tomcat服务器上。在整个过程中,你可能会遇到各种问题,例如依赖冲突、SQL查询错误、页面渲染问题等,需要不断调试和优化。 这个学生管理系统项目是一个很好的实践机会...
在Java Web开发中,SpringMVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构,常用于构建Web应用程序。SpringMVC通过将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可测试性。开发者可以...
【九格宫日记网站源码】是一个基于Java Web技术栈构建的在线日记记录平台,它融合了现代化的前端技术和数据库管理,旨在提供一个简洁、高效且用户友好的日记撰写环境。这个项目的核心技术包括Java后端开发语言、Ajax...
6. **构建工具**:项目可能使用Maven或Gradle进行依赖管理和构建流程。 7. **版本控制**:由于项目是从Git仓库中获取的,所以很可能包含`.git`目录,这有助于了解项目的历史和版本信息。 8. **配置文件**:如`pom....
Spring MVC是Spring框架的一部分,专门用于构建Web应用程序。它采用模型-视图-控制器(MVC)架构模式,将业务逻辑、数据和用户界面分离。在Spring MVC中,`Controller`处理HTTP请求,`Model`负责业务逻辑和数据,而`...
3. **Web层与表示层**:Servlet和JSP是构建Web应用的主要工具,它们负责处理HTTP请求和生成动态内容。手册会讲解如何设计高效、可维护的Web层架构。 4. **业务逻辑层**:EJB是实现业务逻辑的关键,包括Session ...
【云笔记_jsp.zip】是一个包含Java毕业设计项目的压缩包,该项目使用了SpringBoot和Maven框架。这个项目的核心目标是构建一个云笔记应用,它可能提供了在线存储、编辑和管理个人笔记的功能,使得用户可以在任何地方...
这通常包括使用Maven或Gradle进行依赖管理,编写清晰的编码规范,设置单元测试,以及使用持续集成工具如Jenkins进行自动化构建和部署。 3. **在JBoss中部署EJB**:Enterprise JavaBeans (EJB) 是J2EE的一部分,用于...
Spring Boot通过“起步依赖”(Starter POMs)来简化项目构建,这些起步依赖是预配置的Maven或Gradle依赖集,包括了Spring框架和其他常用库,如数据访问、Web服务等。例如,`spring-boot-starter-web`提供了Web应用...
- **Spring MVC**:Spring MVC是Spring框架的一部分,用于构建Web应用程序,它处理HTTP请求并返回响应,包括模型、视图和控制器的设计模式。 - **MyBatis**:可能用到MyBatis作为持久层框架,它简化了SQL操作,将...
**JSF(Java Server Faces)** 是一种Java技术,用于构建Web应用程序的用户界面。它是一种组件化的MVC(Model-View-Controller)框架,旨在简化开发过程,提高开发效率。JSF提供了一系列预定义的UI组件,允许开发者...
Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非...
学生可能需要学习如何使用Maven或Gradle来构建和打包项目。 9. **版本控制**:Git是常见的版本控制系统,用于跟踪代码变更。学生应掌握基本的Git操作,如clone、commit、push和pull。 10. **测试**:了解单元测试...