在进行web开发的时候,我们总是无法避免打开浏览器对应用进行测试,下面我们使用maven配置web应用。
1.采用jetty插件部署web项目
使用jetty-maven-plugin十分简单。只需要指定该插件的坐标,并且稍加配置即可,详细代码如下:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.1.6.v20100715</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/test</contextPath>
</webAppConfig>
</configuration>
</plugin>
我们需要注意到是jetty-maven-plugin并不是官方的Maven插件,它的groupId是org.mortbay.jetty,上述代码中使用的了jetty7的最新版本,在该插件的配置中scanIntervalSeconds顾名思义表示该插件扫描项目变更的时间间隔,如果不进行配置那么扫描的间隔就为0,而webappConfig元素下跌contextPath表示该项目部署后的context path即可通过 http://hostname:port/test进行访问。
我们在启动jetty是需要进行稍微的改动,由于jetty-maven-plugin的插件groupId是org.mortbay.jetty,在默认情况下只有org.apache.maven.plugins 和 prg.codehaus.mojo两个groupId下单插件才支持简化的命定行调用,所以需要修改${MAVEN_HOME}/conf/settings.xml 具体如下:
<pluginGroups>
<!-- pluginGroup
| Specifies a further group identifier to use for plugin lookup.
<pluginGroup>com.your.plugins</pluginGroup>
-->
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>
现在-可以运行如下命令即可
mvn jetty:run
jetty-maven-plugins 会启动Jetty,并且默认监听本地的8080端口,并将当前的项目部署到容器中,同时还会根据用户配置扫描代码改动。
如果希望使用其他端口,可以添加jetty.port参数例如:
mvn jetty:run -Djetty.port=9999
要停止jetty容器,只需要采用Ctrl+C即可。
2.使用Cargo实现自动化部署
Cargo是一组帮助用户操作web容器的工具 ,它能够帮助用户实现自动化部署,而且它几乎支持所有的web容器,如tomcat,jetty,jboss和Glassfish等,Cargo通过cargo-maven2-plugin提供了Maven的集成,mavne用户可以使用该插件将web项目部署到web容器中,虽然cargo-mavne2-plugin与jetty-maven-plugin的功能看起来很相似,但它们的目的不同,jetty-maven-plugin 主要用来帮助日常的快速开发,而cargo-mavne2-plugin主要服务于自动化部署。
Cargo支持两种本地部署到方式,分别为standalone模式和existing模式。在standlone模式中,Cargo会从Web容器中的安装目录复制一份配置到用户指定的目录,然后再此目录下进行部署应用,每次重新构建时候这个目录都会被清空。
配置Cargo中的standalonee模式如下:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<configuration>
<container>
<containerId>tomcat6x</containerId>
<home>E:\资料库\资料库\java\开发工具\tomcat\tomcat6\apache-tomcat-6.0.35</home>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/tomcat6x</home>
<properties>
<cargo.servlet.port>8081</cargo.servlet.port>
<cargo.jvmargs>
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
</cargo.jvmargs>
</properties>
</configuration>
</configuration>
<executions>
<execution>
<id>cargo-run</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
由于cargo-maven2-plugin 的groupId是org.codehaus.cargo,这不是官方的两个Maven插件,因此用户需要在setting中进行配置。
上述的cargo-maven2-plugin的具体配置包括了container和configuration的两个元素,configuration元素中的type表示部署到模式,home元素表示复制容器到什么位置,这里的值为${project.build.directory},表示的是构建输出目录,即target/下的tomcat6x目录。container元素下的containerId表示容器的类型,hoem表示容器的安装目录。
要让Cargo启动tomcat并部署应用,只需要运行
mvn cargo:start
默认情况下Cargo会让web容器监听8080端口,如果需要修改只需要配置
<properties>
<cargo.servlet.port>8081</cargo.servlet.port>
</properties>
现在就可以通过http://localhost:portal/project名称进行访问即可.
其中的设置远程调试
<cargo.jvmargs>
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
</cargo.jvmargs>
绑定任务
<executions>
<execution>
<id>cargo-run</id>
<phase>pakcage</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<phase>package</phase> 将任务绑定到生命中的中的package阶段。
采用exitsting模式进行部署具体实现如下:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0</version>
<configuration>
<container>
<containerId>tomcat6x</containerId>
<home>E:\资料库\资料库\java\开发工具\tomcat\tomcat6\apache-tomcat-6.0.35</home>
</container>
<configuration>
<type>existing</type>
<home>E:\资料库\资料库\java\开发工具\tomcat\tomcat6\apache-tomcat-6.0.35</home>
</configuration>
</configuration>
</plugin>
基于上述配置运行mvn cargo:start之后,便能够在tomcat的webapps目录下看到被部署到Maven项目。
3.部署至远程web容器
除了让Cargo直接管理本地web容器然后部署应用之外,也可以让Cargo部署应用之远程的正在执行的web容器中,当然前提是有用容器的相应管理员权限。相关配置如下:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0</version>
<configuration>
<container>
<containerId>tomcat6x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password>password</cargo.remote.password>
<cargo.remote.url>http://localhost:8080/manager</cargo.remote.url>
</properties>
</configuration>
</configuration>
</plugin>
我们可以使用 mvn cargo:redeploy进行部署,如果容器中已经部署了当前应用,Cargo会先将其卸载,然后在进行部署。
由于自动化部署本身就不是很简单的事情,在加上Cargo要兼容各种不同类型的web容器,以此cargo-maven2-plugin的相关配置显得很复杂,这个时候的文档显得尤为重要,如果想进一步了解cargo,可以访问http://cargo.codehaus.org/Maven2+plugin.
分享到:
相关推荐
本篇文章将深入探讨如何使用Maven构建Web项目,并详细解释如何将构建好的项目部署到Tomcat服务器。 首先,Maven是Apache软件基金会的一个开源项目,它通过一个统一的方式来管理项目的构建、报告和文档。Maven的核心...
在IT行业中,构建Web应用程序是常见的任务,而Maven和Eclipse是开发人员常使用的工具。本教程聚焦于如何在Eclipse集成开发环境中利用Maven来构建Web项目,旨在帮助初学者快速上手,但不涉及特定的框架如Spring或...
【标题】:“idea创建基于maven的web工程共6页.pdf.zi”指的是一个压缩文件,其中包含了关于如何在IntelliJ IDEA(简称Idea)这个集成开发环境中使用Maven构建Web应用程序的教程。该教程可能详细阐述了从零开始创建...
* webapp:存放web应用程序的文件夹 本文介绍了基于maven创建web项目的步骤,包括搭建maven环境、集成maven到Myeclipse2013和创建maven架构下的WEB工程。通过这篇文章,读者可以学习到如何使用maven来构建和管理web...
** Maven构建Web工程详解 ** Maven是一款强大的项目管理和依赖管理工具,广泛应用于Java开发领域。它通过统一的构建过程和约定优于配置的原则,极大地简化了项目的构建、编译、测试和部署流程。在本篇内容中,我们...
在IT行业中,SpringBoot和Maven是两个非常重要的工具,它们在构建Web应用程序时起着核心作用。SpringBoot简化了Spring框架的配置,使得开发者能够快速地开发出高性能的Java应用,而Maven则是一个项目管理和集成工具...
【标题】"Maven account-web例子" 是一个关于使用Maven构建Web应用程序的实际示例。在Java开发中,Maven是一个强大的项目管理和依赖管理工具,它可以帮助开发者自动化构建过程,管理项目的生命周期,并解决库依赖...
在创建Web应用时,Maven提供了多种生命周期和构建阶段。例如,“compile”阶段用于编译源代码,“test”阶段执行单元测试,“package”阶段将编译后的结果打包成可部署的形式,如WAR文件。对于Web应用,最终的WAR...
在IT行业中,构建Web项目是开发过程中的重要环节,而Maven作为一种强大的项目管理工具,极大地简化了这一过程。本文将深入探讨如何使用Maven来构建一个名为“helloweb”的Web项目,以及相关的知识点。 **一、Maven...
【使用Maven开发Java Web应用】的详细指南 在Java Web开发中,管理各种框架的jar包及其依赖是一项挑战。传统的构建工具Ant逐渐被Maven和Gradle等更先进的工具取代,尤其是Maven,它提供了强大的依赖管理和项目构建...
使用Maven核心概念介绍(坐标、依赖、仓库、插件、生命周期等)、Maven与第三方Elicpse整合及如何在Eclipse中使用Maven、什么是私服、Maven为什么使用私服、Maven私服Nexus的安装使用、如何使用Maven构建Web应用、使用...
** Maven简介 ** Maven是Java开发中的一个项目管理和综合...总结来说,"maven简单web实例"涉及的是使用Maven构建和管理Java Web应用程序的过程,利用Maven的依赖管理和构建生命周期,简化了Web应用的开发和部署流程。
maven-webstart 使用 Maven 构建 Java Webstart 应用程序的模板。 此存储库包含多个示例项目,用于使用 Maven 构建 Java Webstart 应用程序。 不同的配置: 使用 JnlpDownloadServlet 使用自定义的 Jsp 作为 jnlp 而...
在MyEclipse中使用Maven构建Web项目是一个常见的开发任务,可以帮助开发者更加高效地管理和构建项目。Maven是一个强大的项目管理工具,它依赖于配置文件(pom.xml)来管理项目的构建、报告和依赖关系。以下是在...
使用Maven创建Web应用程序项目 Maven POM Maven 构建生命周期 Maven 构建配置文件 Maven存储库 Maven插件 Maven创建Java项目 使用Maven构建和测试Java项目 Maven外部依赖 Maven项目文档 Maven项目模板 Maven快照 ...
3. **构建Web应用结构** - Maven Web项目的基本目录结构包括src/main/java(存放Java源代码)、src/main/resources(存放资源文件)、src/main/webapp(存放Web应用资源,如HTML、JS、CSS、Web-INF等)。 - Web-...
2. **WAR工程**:Web应用程序通常被打包成WAR(Web ARchive)文件。在分布式系统中,一个服务可能就是一个独立的WAR应用,部署在Web服务器上。通过在POM中设置打包类型为`war`,并添加相关的插件和依赖,Maven能够...
首先,我们需要理解这三个核心组件:IDEA是流行的Java开发集成环境,Maven是项目管理和构建工具,而SpringMVC和Mybatis则分别是用于构建Web应用和数据库操作的框架。 ### IDEA与Maven **IDEA** 是由JetBrains公司...
Maven 是一款流行的自动化构建工具,它不仅简化了项目的构建过程,还为 Java 应用程序提供了标准化的构建生命周期。通过 Maven 创建 Web 项目能够帮助开发者快速搭建开发环境,实现自动化构建、依赖管理和部署等功能...