`

maven学习(2):创建一个简单的maven项目

 
阅读更多

 

                                    maven学习(2):定制一个maven web项目

一.创建一个简单的web项目

     maven3.0以上版本已经废弃create,启用generate创建项目

 1.执行指令创建项目:mvn archetype:generate -DgroupId=org.zcf   -DartifactId=webtest  -DpackageName=com.zcf.webtest  -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeCatalog=internal 

       groupId

     d 团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。来自Sonatype 的项目有一个以com.sonatype开头的 groupId ,而Apache Software的项目有以org.apache开头的 groupId 

       ArtifactID在 groupId 下的表示一个单独项目的唯一标识符。

(maven 骨架生成项目速度慢的令人发指,都在Generating project in Batch mode等待,Idea状态显示栏还在不行runing,并没有卡死。查看debug信息发现,是maven获取archetype-catalog.xml导致。(用游览器打开http://repo1.maven.org/maven2/archetype-catalog.xml,需要等待很长时间才能获取到。)

解决方法:加上-DarchetypeCatalog=internal 运行参数,archetype-catalog.xml本地获取。)

      会出现如下界面

     

      生成的目录结构如下:

     

 

         

     注意  packaging 元素包含的值是  war 。这种打包类型配置让 Maven 以 WAR 文件的形式生成一个 web 应用。一个打包类型为  war 的项目,将会在  target/ 目录创建一个WAR 文件,这个文件的默认名称是  content-zh-0.6-SNAPSHOT.war 。对于这个项目,默认的 WAR 文件是  target/webtest-1.0-SNAPSHOT.war 。在这个webtest项目中,我们已经通过在项目的构建配置中加入  finalName 元素来自定义这个生成的

WAR 文件的名称。根据 webtest 的  finalName , package 阶段生成的 WAR 文件为  target/webtest.war 。

二.配置jetty插件并运行

  在你已经编译,测试并且打包了你的 web 应用之后,你会想要将它部署到一个servlet 容器中,然后测试一下由 Maven Archetype 插件创建的  index.jsp 。通常情况下,你需要下载 Jetty 或者 Apache Tomcat,解压分发包,复制你的应用程序 WAR文件至  webapps/ 目录,然后启动你的容器。 现在,实现同样的目的,你不再需要做这些事情。 取而代之的是,你可以使用 Maven Jetty 插件在 Maven 中运行你的 web应用。为此,你需要在项目的  pom.xml 中配置 Maven Jetty 插件。 在你项目的构建配置中添加如下插件元素:

 

<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>

 在项目的  pom.xml 中 配置好 Maven Jetty 插件之后,你就可以调用 Jetty 插件的Run 目标在 Jetty Servlet 容器中启动你的 web 应用。如下运行 mvn jetty:run :

在浏览器中载入 URL http://localhost:8080/webtest/,会看到helloword界面

三.配置一个简单的servlet

   1. 在项目目录下创建   src/main/java/org/zcf的子目录,在子目录下创建一个TestServlet.java文件,插入以下代码

   

package org.zcf;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
	PrintWriter out = response.getWriter();
	out.println( "SimpleServlet Executed" );
	out.flush();
	out.close();
 }
}
   2. 接着修改src/main/webapp/下的web.xml目录,配置servlet

 

   

<!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>test</servlet-name>
	<servlet-class>org.zcfTestServlet</servlet-class>
	</servlet>
	<servlet-mapping>
	<servlet-name>test</servlet-name>
	<url-pattern>/test</url-pattern>
	</servlet-mapping>
</web-app>
   3.执行编译:mvn compile,会报以下的错误,因为缺少了servlet api的依赖 

 

 

[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
5,8] 类SimpleServlet是公共的, 应在名为 SimpleServlet.java 的文件中声明
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
3,1] 程序包javax.servlet不存在
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
4,1] 程序包javax.servlet.http不存在
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
5,36] 找不到符号
  符号: 类 HttpServlet
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
6,19] 找不到符号
  符号:   类 HttpServletRequest
  位置: 类 org.sonatype.mavenbook.web.SimpleServlet
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
7,1] 找不到符号
  符号:   类 HttpServletResponse
  位置: 类 org.sonatype.mavenbook.web.SimpleServlet
[ERROR] /C:/Users/Administrator/webtest/src/main/java/org/zcf/TestServlet.java:[
8,8] 找不到符号
  符号:   类 ServletException
  位置: 类 org.sonatype.mavenbook.web.SimpleServlet
[INFO] 7 errors
    在pom文件中添加servlet的依赖即可,这里还有必要指出的是我们的这个依赖使用了  provided 范围。这个范围告诉 Maven jar 文件已经由容器“提供”了,因此不再需要包含在 war 中。

 

 

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>3.0-alpha-1</version>
                <scope>provided</scope>
	</dependency>
    http://localhost:8080/webtest/test打开地址可以看到servlet生成的结果

 

 

  • 大小: 39.7 KB
  • 大小: 94.2 KB
分享到:
评论

相关推荐

    基于maven创建web项目

    基于maven创建web项目 ...本文介绍了基于maven创建web项目的步骤,包括搭建maven环境、集成maven到Myeclipse2013和创建maven架构下的WEB工程。通过这篇文章,读者可以学习到如何使用maven来构建和管理web项目。

    IntelliJ IDEA上创建Maven Spring MVC项目

    在本文中,我们将深入探讨如何使用IntelliJ IDEA创建一个基于Maven的Spring MVC项目。首先,我们需要了解几个核心概念: 1. **IntelliJ IDEA**:这是一款强大的Java集成开发环境(IDE),广泛用于Java应用程序的...

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    Maven项目对象模型(POM) POM是Maven的核心,它是一个XML文件,包含了关于项目的配置信息,如项目名称、版本、描述、开发者信息、依赖、构建目标等。通过POM,Maven可以自动下载所需的库文件,编译源代码,运行...

    构建基于Maven的SSH原型项目

    1. **初始化项目**:创建一个新的Maven项目,设置POM.xml文件,这是Maven项目的配置中心,包含项目的基本信息和依赖。 2. **添加SSH框架依赖**:在POM.xml中,你需要指定SSH框架的版本号,并添加相应的依赖。 3. *...

    maven项目搭建管理,简单demo,附普通项目

    - 创建Maven项目:使用IDEA或Eclipse等开发工具,选择Maven项目模板,生成基本的Maven项目结构。 - pom.xml配置:添加项目依赖,包括SpringMVC、Spring、MyBatis、Oracle驱动等。确保每个依赖的版本号与项目兼容。...

    maven项目学习笔记记录

    **Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...

    用idea创建的maven web项目

    【标题】"用idea创建的maven web项目"是一个基于IntelliJ IDEA(简称idea)开发工具构建的Maven Web应用程序。Maven是Java领域的一个项目管理和构建工具,它通过提供一套规范化的项目结构和自动化的构建流程,帮助...

    安装maven和使用maven创建项目

    Maven 是一个广泛使用的 Java 项目管理和构建工具,它简化了构建过程,自动处理依赖管理和构建生命周期。要安装 Maven,首先你需要访问 Maven 的官方网站(https://maven.apache.org/)来下载最新版本的二进制包。...

    Maven2 配置指南(java 项目管理之路)

    - **背景**:创建一个简单的天气查询程序,展示如何使用Maven定制项目信息和依赖。 - **步骤**: - 定义项目结构。 - 添加项目信息。 - 引入依赖库。 - 编写源代码。 - 添加资源文件。 - 运行程序。 2. **...

    手动创建maven工程

    本资源提供了一个手动创建的Maven工程示例,有助于初学者理解和掌握如何从零开始构建Maven项目。 首先,我们要理解Maven的核心概念——Project Object Model (POM)。POM是Maven项目的基本配置单元,包含了项目信息...

    mavenweb项目创建demo

    在创建Maven Web项目时,我们需要创建一个名为`pom.xml`的POM文件,它是Maven项目的核心。 创建Maven Web项目的第一步是设定项目的基本信息,包括项目groupId、artifactId和version。例如: ```xml ...

    freemarker+struts2+在eclipse中创建maven项目

    【标题】"freemarker+struts2+在eclipse中创建maven项目"涉及到的是一个基于Java Web开发的技术组合,主要包括Maven构建工具、Freemarker模板引擎和Struts2框架。以下是对这些技术的详细说明: 1. **Maven**: ...

    maven学习的基础资料

    接着,你可以创建一个简单的Maven项目,通过编写POM.xml文件来定义项目依赖和构建目标。随着对Maven的深入学习,你会掌握如何管理项目依赖、配置构建插件、自定义构建生命周期等高级功能。 Maven的学习是一个逐步的...

    Apache Maven 2 Effective Implementation

    ### Apache Maven 2 有效实施知识点详解 ...通过深入学习《Apache Maven 2 Effective Implementation》这本书,读者不仅可以掌握 Maven 的基本使用方法,还能了解到如何利用 Maven 来提高团队的开发效率和项目质量。

    maven2的学习记录.docx

    Maven2 archetype 是指一个预定义的项目模板,可以用来快速创建新的 Maven2 项目。Maven2 archetype 主要分为以下几个部分: * ArchetypeRepository:archetype 仓库的 URL。 * ArchetypeGroupId:archetype 的组名...

    简单ssm+maven项目

    在这个“简单ssm+maven项目”中,开发者利用了这三个框架的优势来实现一个可运行的应用。下面将详细解释这些框架以及它们在项目中的作用。 **Spring框架**: Spring是Java企业级应用的核心框架,它提供了全面的编程...

    Maven学习记录(一):安装与环境配置

    ** Maven学习记录(一):安装与环境配置 ** Maven是Java开发中不可或缺的构建工具,它通过统一的项目对象模型(Project Object Model,POM)管理项目的构建、报告和依赖关系,极大地简化了项目的构建流程。这篇...

    idea工具创建的Spring+SpringMVC+Hibernate+maven项目

    标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...

    maven基础学习(四)-简单实例(使用Archetype生成项目骨架)

    1. 创建模板项目:创建一个包含所需结构和文件的Maven项目。 2. 打包成Archetype:使用`mvn archetype:create-from-project`命令,将模板项目转换为Archetype。 3. 发布Archetype:将生成的Archetype发布到私有或...

Global site tag (gtag.js) - Google Analytics