构建工具
一、构建工具的作用
构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而为我们减少这些繁琐的工作。
其中构建工具提供的依赖管理能够可以自动处理依赖关系。例如一个项目需要用到依赖 A,A 又依赖于 B,那么构建工具就能帮我们导入 B,而不需要我们手动去寻找并导入。
在 Java 项目中,打包流程通常是将项目打包成 Jar 包。在没有构建工具的情况下,我们需要使用命令行工具或者 IDE 手动打包。而发布流程通常是将 Jar 包上传到服务器上。
二、Java 主流构建工具
Ant 具有编译、测试和打包功能,其后出现的 Maven 在 Ant 的功能基础上又新增了依赖管理功能,而最新的 Gradle 又在 Maven 的功能基础上新增了对 Groovy 语言的支持。
Gradle 和 Maven 的区别是,它使用 Groovy 这种特定领域语言(DSL)来管理构建脚本,而不再使用 XML 这种标记性语言。因为项目如果庞大的话,XML 很容易就变得臃肿。
例如要在项目中引入 Junit,Maven 的代码如下:
|
|
而 Gradle 只需要几行代码:
|
|
三、Maven
我为什么要学习这个技术?
- 在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
- 如何能够让一个东西自动帮我导入和配置这个jar包。
由此,Maven诞生了!
概述
提供了项目对象模型(POM)文件来管理项目的构建。
仓库
仓库的搜索顺序为:本地仓库、中央仓库、远程仓库。
- 本地仓库用来存储项目的依赖库;
- 中央仓库是下载依赖库的默认位置;
- 远程仓库,因为并非所有的依赖库都在中央仓库,或者中央仓库访问速度很慢,远程仓库是中央仓库的补充。
POM
POM 代表项目对象模型,它是一个 XML 文件,保存在项目根目录的 pom.xml 文件中。
|
|
[groupId, artifactId, version, packaging, classifier] 称为一个项目的坐标,其中 groupId、artifactId、version 必须定义,packaging 可选(默认为 Jar),classifier 不能直接定义的,需要结合插件使用。
- groupId:项目组 Id,必须全球唯一;
- artifactId:项目 Id,即项目名;
- version:项目版本;
- packaging:项目打包方式。
依赖原则
1. 依赖路径最短优先原则
|
|
由于 X(2.0) 路径最短,所以使用 X(2.0)。
2. 声明顺序优先原则
|
|
在 POM 中最先声明的优先,上面的两个依赖如果先声明 B,那么最后使用 X(1.0)。
3. 覆写优先原则
子 POM 内声明的依赖优先于父 POM 中声明的依赖。
解决依赖冲突
找到 Maven 加载的 Jar 包版本,使用 mvn dependency:tree
查看依赖树,根据依赖原则来调整依赖在 POM 文件的声明顺序。
安装与使用
1、Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置
2、下载安装Maven
官网;https://maven.apache.org/
下载完成后,解压即可;
3、配置环境变量
在系统环境变量中
配置以下配置:
- MAVEN_HOME maven的目录
- 在系统的path中配置 %MAVEN_HOME%\bin
- 测试Maven是否安装成功,保证必须配置完毕!
4、配置阿里云加速镜像
使用阿里云Maven中央仓库作为下载源,速度更快更稳定。
maven 安装目录的
conf/settings.xml
在
<mirrors></mirrors>
标签中添加mirror
子节点1 2 3 4 5 6
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
5、本地仓库
修改本地的仓库存放位置
- maven 安装目录的
conf/settings.xml
- 在
<settings></settings>
标签中添加localRepository
子节点,按个人习惯存放。
|
|
6、在IDEA中使用Maven
1、启动IDEA
2、 创建一个MavenWeb项目
3、等待项目初始化完毕
4、检查IDEA中的Maven设置
6、到这里,Maven在IDEA中的配置和使用就OK了!
7、创建一个普通的Maven项目
只有在Web应用下才有的项目结构
8、标记文件夹功能
9、在 IDEA中配置Tomcat
1、添加tomcat
2、相关配置
3、关联网站
访问路径加了,访问的时候,在端口后面就是加上
例如:ip:端口/虚拟路径
启动tomcat
10、pom文件
pom.xml 是Maven的核心配置文件.
记录了项目具体依赖的Jar包的配置版本。
maven由于它是约定大于配置,之后可以能遇到写的配置文件不生效的问题。
解决方案:
|
|
11、Maven仓库的使用
地址:https://mvnrepository.com/
点击进去,可以查看到使用的人数及版本更新时间
点击对应的版本,里面有maven引用的配置信息,复制到本地的POM.xml下,重新引用一下依赖,就可以导致对应的Jar包。
查询项目的依赖就导入进来了。