maven概念与实例
- 格式:doc
- 大小:129.50 KB
- 文档页数:6
maven概念以下是Maven的一些核心概念:1.Project Object Model (POM):o POM是Maven的核心配置文件(通常为pom.xml),它定义了项目的基本信息、构建过程、依赖关系、构建目标等。
o在POM中,你可以声明项目描述、开发者信息、源代码目录结构、构建输出路径、插件的使用以及项目所依赖的其他库。
2.Dependency Management:o Maven通过中央仓库(Central Repository)和其他自定义仓库来管理项目的依赖关系。
o在POM中,可以声明项目直接或间接依赖的外部JAR或其他工件,并指定它们的版本和范围,Maven会自动下载并将其添加到项目的类路径中。
3.Build Lifecycle:o Maven有一套预定义的生命周期,包括clean、default和site生命周期。
o每个生命周期包含一系列阶段(phase),如编译(compil e)、测试(test)、打包(package)、部署(deploy)等。
执行某个阶段时,Maven会自动执行该阶段之前所有阶段的任务。
o用户可以通过命令行指定生命周期的某个阶段来执行相应的构建任务。
4.Plugins and Goals:o Maven的所有功能都是由插件(plugins)提供的,每个插件都有一系列可执行的目标(goals)。
o在生命周期的不同阶段,Maven会调用相应插件的目标来完成特定任务,例如使用maven-compiler-plugin编译源代码,使用maven-jar-plugin创建JAR包等。
5.Convention over Configuration:o Maven遵循“约定优于配置”的原则,即提供了一套默认的项目布局和构建规则,使得用户只需很少的配置就可以开始构建项目。
6.Multi-module Builds:o Maven支持多模块构建,允许在一个顶级POM下管理多个子模块,这样可以方便地组织大型项目,实现各个模块间的依赖管理和构建顺序控制。
maven 语法Maven 是一个 Java 项目管理和构建自动化工具。
它使用一种基于 POM (Project Object Model)的声明式语法来描述项目的构建、报告和文档。
以下是 Maven 的一些常用语法和概念:1. POM(Project Object Model)文件: Maven 的核心是 POM 文件,通常名为 ``。
这个文件包含了项目的元数据和构建配置。
2. 依赖管理: Maven 通过 `dependencies` 元素在 POM 中管理项目的依赖。
你可以指定依赖的坐标(groupId, artifactId, version)以及可选的传递性依赖。
```xml<dependencies><dependency><groupId></groupId><artifactId>my-artifact</artifactId><version></version></dependency></dependencies>```3. 插件和插件管理: Maven 通过插件执行生命周期的各个阶段。
POM 文件中的 `build` 部分配置了插件和它们的配置。
```xml<build><plugins><plugin><groupId></groupId><artifactId>maven-compiler-plugin</artifactId><version></version><configuration><source></source><target></target></configuration></plugin></plugins></build>```4. 生命周期: Maven 有默认的生命周期,包括编译、测试、打包、安装等阶段。
Maven的介绍及使⽤⼀、Maven简介 Maven 是⼀个项⽬管理⼯具,可以对 Java 项⽬进⾏构建、依赖管理,是⼀个⾃动化构建⼯具。
⾃动化构建⼯具:将原材料(java、js、css、html....)->产品(可发布项⽬) 编译-打包-部署-测试 -> ⾃动构建Maven的作⽤:1、管理jar包1. 增加第三⽅jar包(不需要⾃⼰下载jar包)2. 管理jar包之间的依赖关系(maven⾃动关联下载所有依赖的jar包)2、将项⽬拆分成若⼲个模块:借助于Maven可以将⼀个项⽬拆分成多个⼯程。
(例如爱洋葱)Maven能⼲的事情: 清理:删除编译的结果,为重新编译做准备。
编译:java->class 测试:针对于项⽬中的关键点进⾏测试,也可⽤项⽬中的测试代码去测试开发代码 报告:将测试结果进⾏显⽰ 打包:将项⽬中包含的多个⽂件压缩成⼀个⽂件,⽤于安装或部署(java项⽬打成⼀个jar包,web项⽬打成⼀个war包,⽗⼯程-pom) 安装:将打成的包,放到本地仓库,供其他项⽬使⽤。
部署:将打成的包,放到服务器上,准备运⾏。
Eclipse中的项⽬,要在Tomcat中运⾏,需要部署: a、通过eclipse中add and remove按钮进⾏部署 b、将Web项⽬打成⼀个war包,然后将该war包复制到Tomcat/webapps中即可 通常下载⼀个jar包,先在本地仓库中下载,如果本地仓库中不存在,则再联⽹到中央仓库(镜像)去下载。
约定配置: Maven 提倡使⽤⼀个共同的标准⽬录结构,Maven 使⽤约定优于配置的原则,⼤家尽可能的遵守这样的⽬录结构。
如下所⽰:⼆、Maven POM POM(项⽬对象模型) 是 Maven ⼯程的基本⼯作单元,是⼀个XML⽂件,包含了项⽬的基本信息,⽤于描述项⽬如何构建,声明项⽬依赖,等等。
执⾏任务或⽬标时,Maven 会在当前⽬录中查找 POM。
maven的概述Maven的概述Maven是一个流行的项目管理工具,用于构建、发布和管理Java项目。
它提供了一个一致的项目结构,统一的构建过程和丰富的插件生态系统,使得项目的管理和构建变得更加简单和高效。
本文将对Maven的基本概念、特点和使用方法进行介绍。
一、Maven的基本概念1. 项目:Maven将一个Java项目看作一个整体,由多个模块组成。
每个模块可以是一个独立的项目,也可以是其他模块的子模块。
2. 依赖:Maven通过依赖来管理项目所需的外部库和组件。
通过在项目的配置文件中声明依赖关系,Maven可以自动下载并引入所需的依赖。
3. 插件:Maven的插件是用于扩展和定制构建过程的工具。
插件可以执行各种任务,如编译代码、运行测试、打包应用等。
4. 仓库:Maven使用仓库来存储和管理项目的依赖。
仓库分为本地仓库和远程仓库,本地仓库用于存储本地构建的依赖,远程仓库用于下载和缓存远程依赖。
5. 生命周期和阶段:Maven定义了一套标准的构建生命周期,包括编译、测试、打包、部署等阶段。
每个生命周期由多个阶段组成,每个阶段对应一个或多个插件目标。
二、Maven的特点1. 简化项目管理:Maven提供了一种简洁、一致的项目结构和构建方式,使得项目的管理和维护更加方便。
开发者只需关注项目的代码和配置,而无需手动管理构建过程和依赖。
2. 自动化构建:Maven能够自动化执行项目的构建过程,包括编译代码、运行测试、打包应用等。
开发者只需通过命令或IDE插件触发构建命令,Maven会根据项目的配置和依赖自动完成构建任务。
3. 依赖管理:Maven通过中央仓库和本地仓库来管理项目的依赖。
开发者只需在项目的配置文件中声明所需的依赖,Maven会自动下载和引入依赖。
同时,Maven还支持依赖冲突解决和版本管理,确保项目的依赖关系正确和一致。
4. 插件系统:Maven的插件系统是其核心功能之一,它提供了丰富的插件来扩展和定制构建过程。
MVN的概念,⽤途和⽤法MVN是⼀个项⽬构建和管理⼯具将项⽬管理规范化,⾃动化,帮助管理项⽬编译构建,⽂档,依赖管理和发布。
会⽤到以下重要的概念:POM:maven⼯作的基础,project object model,执⾏goal或者task的之前,会根据pom.xml读取配置。
pom中有这些节点,model version, groupid, artifactid, dependency, description, URL, parent,artifact:项⽬产⽣的⼯具,可以是源⽂件,war,jar等⽂件。
需要被使⽤的artifact都放到仓库中。
使⽤groupid.artifactid.version作为标识符。
repository:仓库,⽤来存储artifact的,使⽤mvn install来把项⽬安装到仓库中。
仓库⼜分为远程仓库和本地仓库。
Build Lifecycle是指⼀个项⽬build的过程。
分为三种,default, clean和site。
分为⼏个phases阶段。
validate compile test package integration-test verify install deployGOAL代表⼀个特定任务maven创建项⽬是根据Archetype(原型)创建的Archetypemaven是根据原型创建的。
(1) 创建quick-start⼯程创建⼀个简单的quick start项⽬,指定 -DarchetypeArtifactId为maven-archetype-quickstart,如下命令编译 mvn compile打包 mvn package,此时target⽬录下会出现maven-quickstart-1.0-SNAPSHOT.jar⽂件,即为打包后⽂件打包并安装到本地仓库mvn install,此时本机仓库会新增maven-quickstart-1.0-SNAPSHOT.jar⽂件。
Maven从入门到流畅使用1、简介1.1、什么是MavenMaven 是一个项目管理工具,使用Maven高效管理你的Java项目。
Maven包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑。
使用Maven的好处jar包管理(使用jar包坐标),解决jar包冲突;可以用来编译代码;可以用来进行测试;进行项目的打包、发布。
1.2、Maven的两个经典作用1.2.1、Maven的依赖管理通过在 pom.xml 文件中添加所需 jar 包的坐标,,在需要用到 jar 包的时候,只要查找pom.xml 文件,再通过 pom.xml 文件中的坐标,在仓库(本地仓库,远程仓库(私服),中央仓库)中找到对应的jar包使用。
maven 中也有索引的概念,通过建立索引,可以大大提高加载 jar 包的速度,使得我们认为 jar 包基本跟放在本地的工程文件中再读取出来的速度是一样的。
1.2.2、项目的一键构建构建是指:项目从编译、测试、运行、打包、安装,部署整个过程都交给 maven 进行管理。
一键构建指:整个构建过程,使用 maven 的一个命令就可以轻松完成整个工作。
Maven规范化构建流程如下:maven将项目构建的过程进行标准化,每个阶段使用一个命令完成。
2、Maven使用2.1、Maven安装下载地址:官网下载地址安装:Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下。
maven 的目录结构如下:环境配置maven软件版本测试通过 mvn -v 命令检查 maven 是否安装成功,看到 maven 的版本及 java 版本即为安装成功。
idea中maven的使用一、什么是mavenMaven是一个项目管理工具,能够帮助开发人员自动化构建、依赖管理和项目报告等任务。
它基于项目对象模型(POM),通过使用XML文件来描述项目的配置信息。
二、为什么要使用maven1. 管理项目依赖在开发过程中,我们通常会引入许多第三方库来实现特定的功能,而这些库之间可能存在依赖关系。
使用maven可以很轻松地管理这些依赖关系,只需在POM文件中定义需要的库,maven会自动下载所需的依赖包。
2. 自动化构建和测试使用maven可以定义一系列的构建和测试任务,通过命令行或者IDE(如IDEA)中的插件来执行这些任务。
这大大简化了构建和测试的过程,提高了开发效率。
3. 项目报告和文档生成maven能够生成各种项目报告和文档,如测试覆盖率报告、代码质量报告、项目文档等。
这些报告和文档可以帮助我们更好地了解项目的情况,并且方便与团队成员进行沟通。
三、maven的核心概念1. 项目对象模型(POM)POM是maven的核心概念,它是一个XML文件,用于描述项目的配置信息。
在POM中可以设置项目的依赖、插件、构建方式等。
2. 依赖管理在POM中可以通过<dependencies>标签定义项目的依赖。
maven会根据这些定义去下载所需的依赖库,并且可以自动解决依赖之间的冲突。
3. 插件插件是maven的扩展机制,通过插件可以执行各种任务,如编译代码、运行测试、打包等。
maven默认包含了一些常用的插件,我们也可以自己编写插件来满足特定需求。
4. 生命周期maven的生命周期定义了一系列的阶段,每个阶段都代表了一个任务。
我们可以通过配置来执行指定的阶段,也可以自定义阶段来执行我们需要的任务。
四、在IDEA中使用maven1. 安装maven插件在IDEA中,默认是没有安装maven插件的,我们需要手动安装。
打开IDEA的设置页面,选择Plugins,搜索Maven插件进行安装。
maven pom build 继承规则【实用版】目录1.Maven 的概念与作用2.Maven 的依赖管理3.Maven 的构建工具4.Maven 的继承规则5.pom.xml 文件的作用与编写6.build 命令的使用与参数7.继承规则的实际应用案例正文一、Maven 的概念与作用Maven 是一个开源的构建工具,它的核心功能是依赖管理。
Maven 这个词的本意是“专家”或“内行”,在项目管理中,它充当着项目依赖的专家,帮助我们管理项目中的各种依赖关系。
Maven 可以将项目的依赖关系、构建过程、测试等所有信息都封装在一个 pom.xml 文件中,让开发者能够更专注于业务逻辑的实现。
二、Maven 的依赖管理在项目中,我们常常需要使用第三方库来完成某些功能,这就产生了依赖关系。
Maven 的依赖管理功能可以帮助我们轻松地处理这些依赖关系,它通过 pom.xml 文件来声明项目所需的依赖库,并且在构建过程中自动下载和安装这些依赖库,大大简化了开发者的工作。
三、Maven 的构建工具Maven 的构建工具可以帮助我们自动化构建项目,包括编译源代码、打包项目、运行测试等。
我们可以通过编写 pom.xml 文件来配置项目的构建过程,例如设置编译器、构建目录、测试工具等。
在实际应用中,我们常常使用 Maven 的 build 命令来执行构建任务,该命令可以接受一系列参数,例如清理、安装、测试等,以满足不同场景的需求。
四、Maven 的继承规则在 Maven 中,我们可以通过继承规则来简化 pom.xml 文件的编写。
继承规则是指,如果一个 pom.xml 文件中的某个元素与父 pom.xml 文件中的元素相同,那么这个元素就可以继承父 pom.xml 文件中的对应元素。
这样,我们就可以避免在每个 pom.xml 文件中都编写相同的依赖信息。
五、pom.xml 文件的作用与编写pom.xml 文件是 Maven 项目的核心配置文件,它包含了项目所需的依赖库、构建过程、测试信息等。
一.maven基本说明1.maven说明:maven 这个单词来自于意第绪语,意味着知识的积累,最早在Jakarta Turbine项目中它开始被用来视图的简化构建的过程,当时有很多项目,它们的ant build 文件仅有细微的差别,而jar文件都是CVS来维护的,他们细微有一个标准的方法来构建这些项目,包括项目的清晰的定义以一种很方便的发布项目信息的方式,jar共享使用。
2.作用是一个软件项目管理和构建的工具,基于POM(Project Object Model)项目对象模型的概念,maven 可以管理项目的构建,报告和文件从信息中心。
即管理项目的构建、报告和文档的软件项目管理工具,是基于POM(Project Object Model)项目对象模型.3.解决问题(1)jar 包冲突(2)jar 包臃肿(3)可以进行项目的高效测试4.其他说明apache基金会的tm级项目官网:https:///二. maven 环境变量搭建1.添加系统变量1.1. 添加M2_HOME变量M2_HOME=安装目录\apache-maven-3.3.91.2. 添加到M2_HOME到path变量%M2_HOME%\bin2.验证环境变量:在dos窗口中输入:mvn -v 或者mvn -version显示下图内容:三.maven 目录介绍bin:包含了maven 运行的脚本boot: 类加载器框架maven 使用该框架加载自己的类库conf: maven 配置文件信息lib: 包含了maven 运行时所需的java 类库四. 基于maven搭建的项目目录说明:2. maven 创建的java 项目的常用的目录结构:src--main--java--package--resources--test--java--package--resourcespom.xmlsrc/main/java 项目的源代码所在目录src/main/resources 项目的资源文件所在的目录src/test/java 测试代码所在的目录src/test/resources 测试相关的资源文件所在的目录pom.xml 项目工程的描述文件五. maven 常用命令:(1). mvn -v 或者mvn -version:验证环境版本及java版本(2). mvn help:system:打印出所有的系统属性和环境变量,用于核对环境(3). mvn compile编译项目源代码(不会编译test 目录的元代)(会产生target 文件)(4). mvn test: 运行应用程序中的单元测试(5). mvn test-compile 编译测试代码,compile 之后生成的targer 文件夹主程序编译在classes 文件夹下面,测试程序代码放在test-classes 文件夹下(6). mvn clean 删除target 文件夹(7).mvn install: 安装项目依赖的jar 到本地仓库中六.利用pom.xml配置,添加jar依赖1.配置语法:在pom.xml中,向<dependencies>中添加<dependency>标签标明引用<dependencies><!--配置属性(定位方式)1. groupId2. artifactId3. version4. packaging: zip war jar (默认)5. classifermaven 是通过dependency 进行依赖的描述dependcy 是通过坐标元素groupId、artifactId、version来进行快速定位的。
maven框架的概念Maven框架的概念什么是Maven框架?Maven是一个开源的项目管理工具,专注于软件项目的构建、依赖管理和项目信息管理。
它提供了一种简单易用的方式来组织和构建Java项目,并对外提供了丰富的插件和功能扩展。
Maven的核心概念Maven框架基于一些核心概念,这些概念是理解和使用Maven的基础。
项目对象模型(Project Object Model)Maven的项目对象模型是一个以XML格式描述的文件(),用于描述和配置Maven项目的各种属性、依赖和构建规则。
它是Maven构建过程的核心,通过解析文件,Maven能够了解项目的结构和依赖关系。
坐标(Coordinates)坐标是Maven用来唯一标识项目的一组属性,包括组织(Group)、名称(Artifact)、版本(Version)等。
坐标在Maven中起到重要的作用,通过坐标可以唯一确定一个项目。
依赖管理(Dependency Management)Maven能够自动解析和管理项目的依赖关系。
通过在文件中定义依赖,Maven能够根据这些依赖信息自动下载所需的库文件,并进行相应的版本控制。
仓库(Repository)Maven的仓库是一个存储项目依赖和插件的地方,可以是本地仓库或者远程仓库。
在构建过程中,Maven会自动从仓库中下载所需的依赖和插件。
生命周期(Lifecycle)Maven提供了一组生命周期,用于定义和管理项目构建过程中的各个阶段。
每个生命周期由一组阶段(Phase)组成,例如编译(compile)、测试(test)、打包(package)等,通过执行不同的命令可以触发相应的生命周期。
插件(Plugins)Maven的插件是一组可扩展的功能组件,用于执行特定的任务或操作。
插件可以在Maven的生命周期中被调用,例如用于编译代码、运行测试、打包项目等。
Maven的优势•简化项目配置:通过统一的项目结构和规范的配置文件,降低了项目的配置复杂性。
1 关键名词Project:任何您想build的事物,Maven都可以认为它们是工程。
这些工程被定义为工程对象模型(POM,Poject Object Model)。
一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。
POM文件位于每个工程的根目录中。
GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。
groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
Artifact:artifact 是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。
每个artifact都由groupId和artifactId组合的标识符唯一识别。
需要被使用(依赖)的artifact都要放在仓库(见Repository)中,否则Maven无法找到(识别)它们。
Dependency:为了能够build或运行,一个典型的Java工程会依赖其它的包。
在Maven中,这些被依赖的包就被称为dependency。
dependency一般是其它工程的artifact。
Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。
插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。
主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
Repository:仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。
Maven有一个默认的远程仓库--central,可以从/maven/下载其中的artifact。
在Windows平台上,本地仓库的默认地址是User_Home\.m2\repository。
Snapshot:工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。
该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发布)。
当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。
2 Maven Build Life Cycle软件项目一般都有相似的开发过程:准备,编译,测试,打包和部署,Maven将上述过程称为Build Life Cycle。
在Maven中,这些生命周期由一系列的短语组成,每个短语对应着一个(或多个)操作;或对应着一个(或多个)goal(类似于Ant中的target)。
如编译源文件的命令mvn compile中的compile是一个生命周期短语。
同时该命令也可以等价于mvn compiler:compile,其中的compiler是一个插件,它提供了compile(此compile与mvn compile中的compile意义不同)goal;compiler还可提供另一个goal--testCompile,该goal用于编译junit测试类。
在执行某一个生命周期时,Maven会首先执行该生命周期之前的其它周期。
如要执行compile,那么将首先执行validate,generate- source,process-source和generate-resources,最后再执行compile 本身。
关于Maven中默认的生命周期短语,请见参考资源[6]中的附录B.3。
3 标准目录布局Maven为工程中的源文件,资源文件,配置文件,生成的输出和文档都制定了一个标准的目录结构。
Maven鼓励使用标准目录布局,这样就不需要进行额外的配置,而且有助于各个不同工程之间的联接。
当然,Maven也允许定制个性的目录布局,这就需要进行更多的配置。
关于Maven 的标准目录布局,请见参考资源[6]中的附录B.1。
4 Maven的优点[1]build逻辑可以被重用。
在Ant中可能需要多次重复地写相同的语句,但由于POM的继承性,可以复用其它的POM文件中的语句。
这样既可以写出清晰的build语句,又可以构造出层次关系良好的build工程。
[2]不必关注build工作的实现细节。
我们只需要使用一些build生命周期短语就可以达到我们的目标,而不必管Maven是如何做到这些的。
如,只需要告诉Maven要安装(install),那么它自然就会验证,编译,打包,及安装。
[3]Maven会递归加载工程依赖的artifact所依赖的其它artifact,而不用显示的将这些artifact 全部写到dependency中。
[4]如果完全使用Maven的标准目录布局,那么可以极大地减少配置细节。
5 实例5.1 构想由于只是阐述Maven的基本使用方法,所以本文将要设计的实例,只是一个简单的Maven demo。
该实例包含两个工程:普通应用程序工程(app)和Web应用工程(webapp)。
app工程提供一个简单的Java类;webapp工程只包含一个Servlet,并将使用app中的Java类。
该Demo的目标是能够正确地将webapp制成war包,以供部署时使用。
要能够正确制作war,自然首先就必须要能够正确的编译源代码,且要将App模块制成jar包。
本文创建的工程所在的目录是D:\maven\demo。
5.2 App工程可以使用Maven的archetype插件来创建新工程,命令如下:D:\maven\demo>mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=app该工程的groupId是ce.demo.mvn,那么该工程的源文件将放在Java包ce.demo.mvn中。
artifactId 是app,那么该工程根目录的名称将为app。
当第一次执行该命令时,Maven会从central仓库中下载一些文件。
这些文件包含插件archetype,以及它所依赖的其它包。
该命令执行完毕后,在目录D:\maven\demo下会出现如下目录布局:app|-- pom.xml`-- src|-- main| `-- java| `-- ce| `-- demo| `-- mvn| `-- App.java`-- test`-- java`-- ce`-- demo`-- mvn`-- AppTest.java因本文暂时不涉及JUnit测试,故请将目录app\src\test目录删除。
然后再修改App.java文件,其完全内容如下:package ce.demo.mvn;public class App {public String getStr(String str) {return str;}}其实,如果我们能够清楚地知道Maven的标准目录布局,就可以不使用archetype插件来创建工程原型;如果我们要定制个性的目录布局,那么就更没有必要使用archetype插件了。
5.3 WebApp工程我们仍然如创建app工程一样使用archetype插件来创建webapp工程,命令如下:D:\maven\demo>mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=webapp -DarchetypeArtifactId=maven-archetype-webapp第一次运行此命令时,也会从central仓库中下载一些与Web应用相关的artifact(如javax.servlet)。
此命令与创建app的命令的不同之处是,多设置了一个属性archetypeArtifacttId,该属性的值为maven-archetype-webapp。
即告诉Maven,将要创建的工程是一个Web应用工程。
创建app工程时没有使用该属性值,是由于archetype默认创建的是应用程序工程。
同样的,执行完该命令之后,会出现如下标准目录布局:webapp|-- pom.xml`-- src`-- main`-- webapp|-- index.jsp|-- WEB-INF`-- web.xml根据5.1节的构想,webapp工程将只包含一个Servlet,所以我们不需要index.jsp文件,请将其删除。
此时大家可以发现,目前的目录布局中并没有放Servlet,即Java源文件的地方。
根据参考资源[6]中的附录B.1,以及app工程中Java源文件的布局,可以知道Servlet(它仍然是一个Java类文件)仍然是放在webapp\src\main\java目录中,请新建该目录。
此处的Servlet是一个简单HelloServlet,其完整代码如下:package hello;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import ce.demo.mvn.App; // 引用app工程中的App类public class HelloServlet extends HttpServlet {private static final long serialVersionUID = -3696470690560528247L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {App app = new App();String str = app.getStr("CE Maven Demo");PrintWriter out = response.getWriter();out.print("<html><body>");out.print("<h1>" + str);out.print("</body></html>");}}5.4 POM文件大家可以发现,在前面新建工程时,我们并没有提到各个工程中的pom.xml文件。