使用 maven 构建 Java Web 多模块项目

项目简介

这是一个集成IDEA+ Tomcat + Maven构建的简易Javaweb多模块项目,目标是以Java构建后端,tomcat作为服务器,实现一些简单的web页面,在实践过程中学习JavaWeb基础知识

(一)基本项目模块搭建

流程

File->New->Project,选择Maven新建项目,输入项目名称及父模块ArtifactId等信息,finish创建完成

143ac138cfb96509dfa2efa3de887e465ef.jpg

创建完毕后项目结构如下,因为该项目是作为一个Parent project存在的,删除不需要的src包

bd553d1ffeecc17f09cc57f4feec72d73b7.jpg

下一步,创建项目的子模块。右击项目,New->Module,选择Maven,勾选上Create from archetype以及下方的webapp模板(不是上面那个,不要选错了),即通过maven中的模板工程创建模块包,此包存放web相关代码,我的包名为space。注:如果使用的是阿里云Maven镜像,模板列表会有些不同,这个模板按字母排序在列表下面

692d30222dcf0c7653a3397a7a41b266efd.jpg

New->Module,同样选择Maven,创建一个子模块,用于存放给其他包调用的核心类Java代码,因此不需要通过模板创建,直接next即可,包名core

7e9acde88654fd473672337a645b1fbe9c4.jpg

这样项目的两个包web包与核心类包就创建完成了,但是它们之间还没形成依赖关系,在space包中还不能调用core包中的代码,我们打开space的pom.xml文件,在其中添加core包依赖,包的三个属性值即为创建模块时输入的信息

467b4ebe6472e6d70f10343fa55371c7ed1.jpg

fb2a80cddfccd1f1bae01e16ec1ee028141.jpg

在依赖输入完成后,使用快捷键Ctrl+shift+alt+U,可以很直观的查看到space包的依赖,说明依赖导入成功

fa98c6d008731a0cbfce3198fb8ccf35b83.jpg

一个使用Maven搭建的Javaweb多模块项目的基础结构就搭建完成啦,项目结构如下。后续会加入更多代码,让项目逐渐跑起来

08131734459b41d8bb1c01aec33ddd33d66.jpg

 

知识点

1. Maven基本概念:

Maven是基于项目对象模型(POM)来管理项目的构建,报告和文档的软件项目管理工具,其核心功能是合理叙述项目间的依赖关系,在pom.xml通过配置xml管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。在上述项目中可以看到,父模块及每个子模块都有一个pom.xml文件,各个模块只负责做自己的功能,然后在pom.xml中通过依赖形成联系,这样整个Project具有非常清晰的架构,便于项目管理

2. Maven仓库:

在space包的依赖中可以看到,除了我们手动添加的core包依赖以外,还有一个junit项目依赖,这个就是来源于Maven仓库,我们在构建一个工程时,通常需要引入一些外部项目依赖,而通过Maven依赖管理,无需手动添加jar包或输入繁杂的地址,只需要在pom.xml文件中配置要依赖项目的坐标,Maven便会自动从本地仓库或远程公共仓库导入jar包。Maven仓库分为三类,

本地仓库:Maven从远程下载到本地的jar包会统一到一个目录下管理,这个目录默认为C:\Users\Administrator\.m2\repository,如下图所示的Maven设置中,也可以勾选override更改为自定义目录。本地仓库的好处是可以将本地的依赖包统一起来管理,在构建新项目需要添加依赖时,无需每次都重复从远程下载,直接从本地调用即可

cee4e37c5b5254ccd4f6c450afa56675ff9.jpg

远程公共仓库:也称为中央仓库,地址为http://repo1.maven.org/maven2,这个仓库是由Maven自己维护的,其中有大量常用的类库和开源项目构件,在pom.xml中配置依赖后,Maven会首先从本地仓库中检查,如果本地库中没有,就默认从远程库中下载

内部中心库:一般由公司内部设立,为公司内部共享使用,既可以作为公司内部构件协作和存档,也可作为公共类库镜像缓存,减少对外部的访问频率,主要目的是统一项目jar版本,保证公司项目组内每个人使用的版本都是一样的。

3. Maven坐标

在pom.xml文件配置依赖坐标,便可定位到相应的类库,坐标常用属性如下,前三个为必要的基本坐标

groupId:当前引入项目所隶属的项目,一般为组织标识

artifactId:项目/模块名称

version:项目版本号

packaging:项目打包方式,可以为war,jar,pom,maven-plugin等

scope:依赖的范围

4. Maven生命周期

Maven对项目所有的构建过程进行了抽象和统一,包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤,整个过程称之为Maven的生命周期

Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有执行顺序的,后面的阶段依赖于前面的阶段。

clean生命周期:清理项目,包含三个phase。

1)pre-clean:执行清理前需要完成的工作

2)clean:清理上一次构建生成的文件

3)post-clean:执行清理后需要完成的工作

default生命周期:构建项目,重要的phase如下。

1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。  
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

site生命周期:建立和发布项目站点,phase如下

1)pre-site:生成项目站点之前需要完成的工作

2)site:生成项目站点文档

3)post-site:生成项目站点之后需要完成的工作

4)site-deploy:将项目站点发布到服务器

输入 mvn 命令 即可执行相应阶段,如下图所示mvn clean

5b16cfb33a047a9b7ad39e53261bc10f110.jpg

5. Maven阿里云镜像

https://my.oschina.net/u/4057396/blog/3020117

参考文章

Maven官网:https://maven.apache.org/

Maven多模块项目构建:https://www.cnblogs.com/wangmingshun/p/6383576.html

Maven的生命周期:http://www.cnblogs.com/tenghoo/p/maven_life_cycle.html

 

心得体会(碎碎念)

做一个学习项目时一定要从第一天就开始用博客记录,及时总结,记录碰到的错误以及解决方案,可以知道自己每天都做了些什么,帮助理清思路加深理解和记忆,做完才有酣畅淋漓的完成感和成就感,总之,写博客很重要,要坚持哇

转载于:https://my.oschina.net/u/4057396/blog/3020341

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值