创建这个简单的Web应用
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch05 \
-DartifactId=simple-webapp \
-DpackageName=org.sonatype.mavenbook \
-DarchetypeArtifactId=maven-archetype-webapp
packaging 元素包含的值是 war
。这种打包类型配置让 Maven 以 WAR 文件的形式生成一个 web 应用。
配置Jetty插件
<project>
[...]
<build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
[...]
</project>
调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动你的 web 应用
mvn jetty:run
运行:http://localhost:8080/simple-webapp
添加一个简单的Servlet
package org.sonatype.mavenbook.web;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println( "SimpleServlet Executed" );
out.flush();
out.close();
}
}
匹配 Simple Servlet,修改WEB-INF/web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>simple</servlet-name>
<servlet-class>org.sonatype.mavenbook.web.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/simple</url-pattern>
</servlet-mapping>
</web-app>
运行 mvn compile 以编译项目
编译失败了,因为你的 Maven 项目没有对 Servlet API 的依赖。
添加 Servlet 2.4 规格说明作为依赖
<project>
[...]
<dependencies>
[...]
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.4_spec</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
[...]
</project>
如果你对在这个简单 web 应用编写自定义 JSP 标签感兴趣,需要添加对 JSP 2.0 规格说明的依赖。
<project>
[...]
<dependencies>
[...]
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jsp_2.0_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
[...]
</project>
运行 mvn compile 以编译你的项目
运行 mvn clean install
运行 mvn jetty:run
访问:http://localhost:8080/simple-webapp/simple
分享到:
相关推荐
【标题】"maven学习笔记1--myeclipse10中的配置" 在IT行业中,Maven和MyEclipse是两个非常重要的工具,它们在软件开发过程中扮演着关键角色。Maven是一个项目管理工具,主要用于Java项目的构建、依赖管理和项目信息...
【标题】"SPBT 源码学习笔记 - spbt-0707-test-java-web" 指的是一份关于SPBT(可能是某个特定软件或框架的缩写)源码的学习资料,专注于测试和Java Web开发部分。这份笔记可能详细解析了SPBT在Java Web环境中的工作...
在Web项目中,通常会使用maven-war-plugin插件来打包Web应用,生成WAR文件。 Maven的安装和配置是使用Maven进行项目管理的第一步。下载Maven的压缩包,并解压到本地目录中。然后需要将Maven的bin目录添加到环境变量...
在"maven学习笔记"中,我们可以深入学习如何配置POM.xml文件,理解Maven的生命周期和构建过程。 **Spring MVC**是Spring框架的一个模块,专门用于处理Web应用的请求-响应模型。它采用模型-视图-控制器(MVC)设计...
在描述中提到的"学习maven笔记"部分,我们可以理解这是一个关于Maven学习的过程记录,可能涵盖了Maven的基本概念、配置、生命周期以及如何使用它来构建和管理项目。"尚不能实现自动发布"暗示了作者可能还没有掌握...
【标题】"201205_Maven学习笔记2.rar" 涉及到的是 Maven,这是一个在软件开发中广泛使用的项目管理和综合工具。Maven 提供了一种标准化的方式来构建、文档化以及管理Java项目,它通过一个项目对象模型(Project ...
【标题】:“201205_Maven学习笔记1.rar”揭示了关于Maven的深入学习内容,这个压缩包包含了一系列文档,旨在帮助开发者更好地理解和应用Maven这一强大的Java项目管理和构建工具。 【描述】:尽管描述部分是空的,...
3. `src/main/webapp`(对于Web项目):如果项目是一个Web应用,此目录用于存放HTML、CSS、JavaScript以及Servlet等Web资源。 4. `src/test/java`:这里存放的是项目的测试代码,通常使用JUnit、TestNG等测试框架...
- **Jetty**:Jetty是一个轻量级的Java Web服务器和Servlet容器,可以与Maven紧密集成,用于快速部署和测试Web应用程序。通过Maven插件,你可以轻松地启动和停止Jetty服务器,实现项目的热部署。 - **Eclipse**:...
然而,随着项目的发展,依赖库的数量会不断增多,这时,本地Maven仓库可能无法满足需求,这时就需要搭建一个私有的Maven仓库,即Maven私服。Nexus作为一款广泛应用的Maven私服,可以有效地解决这个问题。本文将详细...
常见的Maven插件有Surefire Plugin用于运行单元测试,Failsafe Plugin负责集成测试,JAR Plugin用于打包Java应用,WAR Plugin则适用于Web应用的构建。书中会涵盖如何配置和使用这些插件,以满足不同项目需求。 除此...
本文主要介绍了如何使用Maven构建一个SpringMVC项目,并涵盖了构建过程、配置步骤和SpringMVC的核心配置。以下是对各个部分的详细解释: 1. **Maven与SpringMVC背景介绍** Maven是一个强大的项目管理工具,它能够...
【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...
在压缩包中的"案例"文件可能包含了一个简单的Web服务实现,例如一个天气预报服务。开发者可能首先定义了一个WSDL文件来描述服务接口,然后使用JAX-WS或Spring Web Services生成服务端代码,并实现具体的业务逻辑。...
6. **构建Web应用程序**:对于Web项目,Maven提供了war插件来打包Web应用为WAR文件,适用于部署到Servlet容器如Tomcat。同时,可以通过`<war><webResources>`配置资源复制和过滤。 7. **多模块项目**:Maven支持多...
例如,如果某个依赖需要一个需要许可的Sun API,而中央Maven仓库中存在一个免费的替代品,如Geronimo's JTA实现,我们可以使用`exclusions`来替换传递性依赖。 `dependencyManagement`元素是另一个重要的工具,它...